| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- /**
- * Script d'exécution des migrations
- *
- * Ce script exécute automatiquement toutes les migrations SQL dans l'ordre.
- * Utilisation : php migrations/run_migrations.php
- */
- // Configuration de la base de données
- require __DIR__ . '/../config/config.php';
- echo "=== Exécution des migrations ===\n\n";
- try {
- // Connexion à MySQL via socket MAMP
- $dsn = sprintf(
- 'mysql:dbname=%s;unix_socket=%s;charset=utf8mb4',
- $config['db_name'],
- $config['db_socket']
- );
- $pdo = new PDO($dsn, $config['db_user'], $config['db_password']);
- $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- echo "✓ Connexion à la base de données établie\n";
- // Créer la base si elle n'existe pas
- $pdo->exec("CREATE DATABASE IF NOT EXISTS `{$config['db_name']}` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
- $pdo->exec("USE `{$config['db_name']}`");
- echo "✓ Base de données '{$config['db_name']}' sélectionnée\n\n";
- // Lister et trier les fichiers de migration
- $migrationFiles = glob(__DIR__ . '/*.sql');
- sort($migrationFiles);
- if (empty($migrationFiles)) {
- echo "Aucune migration trouvée dans le dossier.\n";
- exit(0);
- }
- // Exécuter chaque migration
- foreach ($migrationFiles as $file) {
- $fileName = basename($file);
- echo "Exécution de $fileName... ";
- try {
- $sql = file_get_contents($file);
- $pdo->exec($sql);
- echo "✓ Réussie\n";
- } catch (Exception $e) {
- echo "✗ Échouée: " . $e->getMessage() . "\n";
- exit(1);
- }
- }
- echo "\n✓ Toutes les migrations ont été exécutées avec succès !\n";
- } catch (Exception $e) {
- echo "✗ Erreur lors de l'exécution des migrations: " . $e->getMessage() . "\n";
- exit(1);
- }
- echo "\n=== Migrations terminées ===\n";
|