hasTable('migrations')) { $output->writeln('Tabela de migrations não encontrada.'); return Command::FAILURE; } $migrationsPath = dirname(__DIR__, 3) . '/database/migrations'; $modulesPath = dirname(__DIR__, 3) . '/modules'; $migrationFiles = []; // Core migrations if (is_dir($migrationsPath)) { $coreFiles = glob($migrationsPath . '/*.php'); if ($coreFiles) { $migrationFiles = array_merge($migrationFiles, $coreFiles); } } // Module migrations if (is_dir($modulesPath)) { $moduleFiles = glob($modulesPath . '/*/database/migrations/*.php'); if ($moduleFiles) { $migrationFiles = array_merge($migrationFiles, $moduleFiles); } } // Sort migration files usort($migrationFiles, function($a, $b) { return basename($a) <=> basename($b); }); // Get executed migrations $executedMigrations = Capsule::table('migrations')->get()->keyBy('migration'); $table = new Table($output); $table->setHeaders(['Executada?', 'Migration', 'Batch']); foreach ($migrationFiles as $file) { $fileName = basename($file, '.php'); $executed = $executedMigrations->has($fileName); $table->addRow([ $executed ? 'Sim' : 'Não', $fileName, $executed ? $executedMigrations->get($fileName)->batch : '-' ]); } $table->render(); return Command::SUCCESS; } }