exec("CREATE TABLE IF NOT EXISTS schema_migrations (version VARCHAR(255) PRIMARY KEY)"); $appliedVersions = $pdo->query("SELECT version FROM schema_migrations")->fetchAll(PDO::FETCH_COLUMN); $migrationFiles = glob(__DIR__ . '/migrations/*.sql'); foreach ($migrationFiles as $file) { $version = basename($file); if (!in_array($version, $appliedVersions)) { $script = file_get_contents($file); $pdo->exec($script); $stmt = $pdo->prepare("INSERT INTO schema_migrations (version) VALUES (?)"); $stmt->execute([$version]); } } } function db() { static $pdo; if (!$pdo) { $pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8mb4', DB_USER, DB_PASS, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]); run_migrations($pdo); } return $pdo; }