query("SELECT * FROM x_users_roles"); $usersRoles = $stmt->fetchAll(); // Préparation de la requête d'insertion $insertQuery = "INSERT INTO x_users_roles ( id, libelle, chk_active ) VALUES ( :id, :libelle, :chk_active ) ON DUPLICATE KEY UPDATE libelle = VALUES(libelle), chk_active = VALUES(chk_active)"; $insertStmt = $targetDb->prepare($insertQuery); // Compteurs $successCount = 0; $errorCount = 0; // Traitement de chaque rôle utilisateur foreach ($usersRoles as $userRole) { try { // Mappage des champs entre les deux structures $id = isset($userRole['rowid']) ? $userRole['rowid'] : $userRole['id']; $chkActive = isset($userRole['active']) ? $userRole['active'] : (isset($userRole['chk_active']) ? $userRole['chk_active'] : 1); // Préparation des données pour l'insertion $userRoleData = [ 'id' => $id, 'libelle' => $userRole['libelle'], 'chk_active' => $chkActive ]; // Insertion dans la base cible $insertStmt->execute($userRoleData); $successCount++; } catch (Exception $e) { $errorCount++; echo "Erreur lors de la migration du rôle utilisateur 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); }