exec(" CREATE TABLE IF NOT EXISTS migrations ( id INT AUTO_INCREMENT PRIMARY KEY, migration VARCHAR(255) NOT NULL UNIQUE, ran_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) "); // Get already-run migrations $stmt = $pdo->query("SELECT migration FROM migrations"); $ranMigrations = $stmt->fetchAll(PDO::FETCH_COLUMN); // Scan and run new migrations $migrationFiles = glob(__DIR__ . '/migrations/*.php'); sort($migrationFiles); foreach ($migrationFiles as $file) { $migrationName = basename($file); if (!in_array($migrationName, $ranMigrations)) { echo "Running migration: $migrationName\n"; require $file; $pdo->prepare("INSERT INTO migrations (migration) VALUES (?)")->execute([$migrationName]); echo "Completed: $migrationName\n"; } } echo "All migrations completed.\n";