From 294a60ecdbd4ae356bb39eef47d20105972125f4 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Sat, 29 Aug 2026 00:28:46 +0300 Subject: [PATCH] feat: Add migration script to apply or refresh database schema --- backend/scripts/migrate.php | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 backend/scripts/migrate.php diff --git a/backend/scripts/migrate.php b/backend/scripts/migrate.php new file mode 100755 index 0000000..90a57c8 --- /dev/null +++ b/backend/scripts/migrate.php @@ -0,0 +1,46 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + $isFresh = isset($argv[1]) && $argv[1] === 'fresh'; + + if ($isFresh) { + echo "Dropping database `$dbName`...\n"; + $pdo->exec("DROP DATABASE IF EXISTS `$dbName`"); + } + + $pdo->exec("CREATE DATABASE IF NOT EXISTS `$dbName` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"); + $pdo->exec("USE `$dbName`"); + + $schema = file_get_contents(__DIR__ . '/../database_schema.sql'); + if (!$schema) { + die("Could not read database_schema.sql\n"); + } + + echo "Executing database_schema.sql...\n"; + $pdo->exec($schema); + + echo "Database migration completed successfully!\n"; +} catch (PDOException $e) { + die("Database Error: " . $e->getMessage() . "\n"); +}