Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

272
Visualizações
Compruebe si existe migración en el proveedor de servicios de paquetes de Laravel

Estoy escribiendo un paquete de Laravel, en su proveedor de servicios, el paquete recibe una lista de migraciones para publicar, usando el siguiente código:

 protected function publishMigrations(array $publishables): void { // Generate a list of migrations that have not been published yet. $migrations = []; foreach($publishables as $publishable) { // Migration already exists, continuing if(class_exists($publishable)){ continue; } $file = Str::snake($publishable) . '.php'; $migrations[self::MIGRATIONS_PATH . $file . '.stub'] = database_path('migrations/'.date('Y_m_d_His', time())."_$file"); } $this->publishes($migrations, 'migrations'); }

Un ejemplo de los $publishables del paquete sería:

 $publishables = ['CreateAuthenticationsTable', 'CreateCustomersTable', 'CreateTransactionsTable'];

El código funciona como se esperaba, publicando las migraciones que tengo la intención de publicar, sin embargo, estoy tratando de evitar publicar la misma migración dos veces usando la class_exists($publishable) . Según entendí, Laravel MediaLibrary está utilizando el mismo enfoque. Pero supongo que las migraciones no se cargan al publicar activos porque ese fragmento de código nunca se ejecuta. (class_exists es falso todo el tiempo)

¿Hay alguna manera de hacer un seguimiento de las migraciones ya publicadas? ¿Se trata de un problema de carga automática?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Esta función migrationExists($mgr) verificará si existe un archivo de migración en la base de database/migrations . Recorrerá los nombres de los archivos de migración y buscará una coincidencia de nombre para el nombre de migración dado.

 protected function publishMigrations() { if (!$this->migrationExists('create_admins_table')) { $this->publishes([ __DIR__ . '/database/migrations/create_admins_table.php.stub' => database_path('migrations/' . date('Y_m_d_His', time()) . '_create_admins_table.php'), // you can add any number of migrations here ], 'migrations'); return; } } protected function migrationExists($mgr) { $path = database_path('migrations/'); $files = scandir($path); $pos = false; foreach ($files as &$value) { $pos = strpos($value, $mgr); if($pos !== false) return true; } return false; }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda