diff --git a/migrate.php b/migrate.php index 619169b..1e76e7e 100644 --- a/migrate.php +++ b/migrate.php @@ -1,51 +1,10 @@ query("SELECT db_name FROM families"); - $families = $stmt->fetchAll(PDO::FETCH_ASSOC); - - foreach ($families as $fam) { - $db = $fam['db_name']; - echo "Migration sur la base : $db...
"; - - $pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, [ - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION - ]); - - // 1. pf_person_leave_meta : Règles de report individuelles - $pdo->exec("ALTER TABLE pf_person_leave_meta ADD COLUMN IF NOT EXISTS carry_over_max_days DECIMAL(5,2) DEFAULT 0.00 AFTER allowance"); - $pdo->exec("ALTER TABLE pf_person_leave_meta ADD COLUMN IF NOT EXISTS carry_over_deadline_month INT(11) DEFAULT 12 AFTER carry_over_max_days"); - - // 2. pf_leave_snapshots : Ajout du solde de report périssable - $pdo->exec("ALTER TABLE pf_leave_snapshots ADD COLUMN IF NOT EXISTS carry_over_balance DECIMAL(6,2) DEFAULT 0.00 AFTER remaining_balance"); - - // 3. pf_leave_types : Nettoyage de l'ancien booléen global s'il existe - try { - $pdo->exec("ALTER TABLE pf_leave_types DROP COLUMN allow_carry_over"); - } catch (Exception $e) { - // La colonne n'existait pas ou est déjà supprimée - } - - echo "✅ Migration réussie pour $db.

"; - } - - echo "🎉 Toutes les bases ont été mises à jour ! Vous pouvez supprimer ce fichier."; - + // Rétablit l'auto-incrémentation sur la colonne id + $pdo->exec("ALTER TABLE pf_leave_snapshots MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;"); + echo "AUTO_INCREMENT rétabli avec succès sur pf_leave_snapshots. 🚀
"; } catch (PDOException $e) { - die("❌ Erreur fatale : " . $e->getMessage()); -} -?> \ No newline at end of file + echo "Erreur : " . $e->getMessage(); +} \ No newline at end of file diff --git a/migrate_attachments.php b/migrate_attachments.php deleted file mode 100644 index b0f00c0..0000000 --- a/migrate_attachments.php +++ /dev/null @@ -1,49 +0,0 @@ -🚀 Lancement de la migration multi-bases...\n\n"; - -try { - // 2. Récupérer toutes les bases de données qui commencent par "househub_f" - $stmt = $pdo->query("SHOW DATABASES LIKE 'househub_f%'"); - $databases = $stmt->fetchAll(PDO::FETCH_COLUMN); - - if (empty($databases)) { - die("❌ Aucune base de données familiale trouvée (Format househub_f1, househub_f2...).\n"); - } - - $successCount = 0; - - foreach ($databases as $dbName) { - // Sécurité : on vérifie le format exact (househub_f suivi de chiffres) - if (preg_match('/^househub_f\d+$/', $dbName)) { - echo "⚙️ Mise à jour de la base : $dbName... "; - - // On bascule la connexion sur la base de la famille - $pdo->exec("USE `$dbName`"); - - // 3. Création de la table - $sql = "CREATE TABLE IF NOT EXISTS pf_holidays_attachments ( - id INT AUTO_INCREMENT PRIMARY KEY, - holiday_id INT NOT NULL, - item_id INT DEFAULT NULL, - file_name VARCHAR(255) NOT NULL, - file_path VARCHAR(255) NOT NULL, - uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT fk_holiday_attachment FOREIGN KEY (holiday_id) REFERENCES pf_holidays(id) ON DELETE CASCADE - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;"; - - $pdo->exec($sql); - echo "✅ OK\n"; - $successCount++; - } - } - - echo "\n🎉 Migration terminée avec succès sur $successCount base(s) familiale(s) !"; - -} catch (PDOException $e) { - die("\n❌ Erreur SQL pendant la migration : " . $e->getMessage() . ""); -} \ No newline at end of file diff --git a/migrate_categories_order.php b/migrate_categories_order.php deleted file mode 100644 index b7ae432..0000000 --- a/migrate_categories_order.php +++ /dev/null @@ -1,64 +0,0 @@ -🚀 Migration : Ajout de l'ordre des catégories"; - -try { - // Connexion au serveur MySQL (sans spécifier de base de données particulière) - $pdo = new PDO("mysql:host=$host;charset=utf8mb4", $user, $pass); - $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - - // 1. Trouver toutes les bases de données de la famille HouseHub - $stmt = $pdo->query("SHOW DATABASES LIKE 'househub_f%'"); - $databases = $stmt->fetchAll(PDO::FETCH_COLUMN); - - if (empty($databases)) { - echo "

❌ Aucune base de données correspondant à 'househub_f*' n'a été trouvée.

"; - exit; - } - - echo "

🔍 " . count($databases) . " base(s) de données trouvée(s).

"; - - // 2. Boucler sur chaque base de données - foreach ($databases as $db) { - echo "
"; - echo "

📂 Traitement de la base : $db

"; - - // Sélectionner la base de données active - $pdo->exec("USE `$db`"); - - // Vérifier si la table pf_budget_categories existe dans cette DB - $tableExists = $pdo->query("SHOW TABLES LIKE 'pf_budget_categories'")->rowCount() > 0; - - if ($tableExists) { - // Vérifier si la colonne sort_order existe déjà (sécurité) - $columnExists = $pdo->query("SHOW COLUMNS FROM pf_budget_categories LIKE 'sort_order'")->rowCount() > 0; - - if (!$columnExists) { - // La colonne n'existe pas, on l'ajoute ! - $pdo->exec("ALTER TABLE pf_budget_categories ADD sort_order INT DEFAULT 0"); - echo "✅ Colonne 'sort_order' ajoutée avec succès !"; - } else { - // La colonne est déjà là - echo "ℹ️ La colonne 'sort_order' existe déjà (Ignoré)."; - } - } else { - echo "⚠️ La table 'pf_budget_categories' n'existe pas ici."; - } - echo "
"; - } - - echo "

🎉 Migration terminée avec succès !

"; - echo "

Tu peux maintenant supprimer ce fichier par mesure de sécurité.

"; - -} catch (PDOException $e) { - echo "

❌ Erreur fatale MySQL :

"; - echo "
" . $e->getMessage() . "
"; -} -?> \ No newline at end of file