query("SELECT * FROM x_departements"); $departements = $stmt->fetchAll(PDO::FETCH_ASSOC); echo "Nombre de départements à migrer: " . count($departements) . PHP_EOL; // Préparation de la requête d'insertion $insertQuery = "INSERT INTO x_departements ( id, code, fk_region, libelle, chk_active ) VALUES ( :id, :code, :fk_region, :libelle, :chk_active ) ON DUPLICATE KEY UPDATE code = VALUES(code), fk_region = VALUES(fk_region), libelle = VALUES(libelle), chk_active = VALUES(chk_active)"; $insertStmt = $targetDb->prepare($insertQuery); // Compteurs $successCount = 0; $errorCount = 0; // Traitement de chaque département foreach ($departements as $departement) { try { // Mappage des champs entre les deux structures $id = isset($departement['rowid']) ? $departement['rowid'] : $departement['id']; $chkActive = isset($departement['active']) ? $departement['active'] : (isset($departement['chk_active']) ? $departement['chk_active'] : 1); // Préparation des données pour l'insertion $departementData = [ 'id' => $id, 'code' => $departement['code'], 'fk_region' => $departement['fk_region'], 'libelle' => $departement['libelle'], 'chk_active' => $chkActive ]; // Insertion dans la base cible $insertStmt->execute($departementData); $successCount++; } catch (Exception $e) { $errorCount++; echo "Erreur lors de la migration du département ID {$id}: " . $e->getMessage() . PHP_EOL; } } echo "Migration terminée. Succès: $successCount, Erreurs: $errorCount" . PHP_EOL; // Fermer le tunnel SSH closeSshTunnel(); } catch (Exception $e) { echo "Erreur critique: " . $e->getMessage() . PHP_EOL; // Fermer le tunnel SSH en cas d'erreur closeSshTunnel(); exit(1); }