bootstrapConsole(); $container = $app->getContainer(); $loader = $container->get(MigrationLoader::class); $validator = $container->get(MigrationValidator::class); $migrations = $loader->loadMigrations(); $appliedVersions = MigrationVersionCollection::fromStrings([]); echo "=== Loaded Migrations ===" . PHP_EOL; foreach ($migrations->toArray() as $migration) { echo " - " . $migration->getVersion()->toString() . ": " . $migration->getDescription() . PHP_EOL; } echo PHP_EOL; echo "=== Running Pre-flight Checks ===" . PHP_EOL; $results = $validator->runPreFlightChecks($migrations, $appliedVersions); foreach ($results as $checkName => $result) { $status = $result['status'] ?? 'unknown'; $severity = $result['severity'] ?? 'info'; $message = $result['message'] ?? 'No message'; $icon = match($status) { 'pass' => '✓', 'fail' => '✗', 'warning' => '⚠', default => '?' }; echo "{$icon} {$checkName} [{$severity}]: {$message}" . PHP_EOL; if (isset($result['details']) && is_array($result['details'])) { foreach ($result['details'] as $key => $value) { if (is_array($value)) { echo " {$key}: " . json_encode($value) . PHP_EOL; } else { echo " {$key}: {$value}" . PHP_EOL; } } } echo PHP_EOL; } $criticalIssues = []; foreach ($results as $check => $result) { if ($result['status'] === 'fail' && ($result['severity'] ?? 'info') === 'critical') { $criticalIssues[] = $check . ': ' . $result['message']; } } if (! empty($criticalIssues)) { echo PHP_EOL . "CRITICAL ISSUES FOUND:" . PHP_EOL; foreach ($criticalIssues as $issue) { echo " ✗ {$issue}" . PHP_EOL; } } else { echo "✓ All pre-flight checks passed!" . PHP_EOL; } } catch (Throwable $e) { echo "Error: " . $e->getMessage() . PHP_EOL; echo "Trace: " . $e->getTraceAsString() . PHP_EOL; }