exec($deleteQuery); // Récupération des IDs des utilisateurs qui ont été migrés $stmt = $targetDb->query("SELECT id FROM users"); $migratedUsers = $stmt->fetchAll(PDO::FETCH_COLUMN); if (empty($migratedUsers)) { echo "ERREUR: Aucun utilisateur n'a été migré. Veuillez d'abord migrer la table users." . PHP_EOL; closeSshTunnel(); exit(1); } // Récupération des médias depuis la source $query = "SELECT * FROM medias"; $stmt = $sourceDb->query($query); $medias = $stmt->fetchAll(PDO::FETCH_ASSOC); // Préparation de la requête d'insertion $insertQuery = "INSERT INTO medias ( support, support_id, fichier, description, created_at, fk_user_creat, updated_at, fk_user_modif ) VALUES ( :support, :support_id, :fichier, :description, :created_at, :fk_user_creat, :updated_at, :fk_user_modif )"; $insertStmt = $targetDb->prepare($insertQuery); // Compteurs pour le suivi $inserted = 0; $skipped = 0; $errors = 0; // Traitement de chaque média foreach ($medias as $media) { // Vérifier si l'utilisateur de création existe dans la table users de la cible $fkUserCreat = $media['fk_user_creat'] ?? 0; if ($fkUserCreat > 0 && !in_array($fkUserCreat, $migratedUsers)) { // L'utilisateur n'a pas été migré, on utilise 0 (système) $fkUserCreat = 0; } // Vérifier si l'utilisateur de modification existe dans la table users de la cible $fkUserModif = $media['fk_user_modif'] ?? 0; if ($fkUserModif > 0 && !in_array($fkUserModif, $migratedUsers)) { // L'utilisateur n'a pas été migré, on utilise 0 (système) $fkUserModif = 0; } // Conversion des dates $createdAt = !empty($media['date_creat']) ? date('Y-m-d H:i:s', strtotime($media['date_creat'])) : date('Y-m-d H:i:s'); $updatedAt = !empty($media['date_modif']) ? date('Y-m-d H:i:s', strtotime($media['date_modif'])) : null; // Préparation des données pour l'insertion $mediaData = [ 'support' => $media['support'] ?? '', 'support_id' => $media['support_rowid'] ?? 0, // Transformation de support_rowid en support_id 'fichier' => $media['fichier'] ?? '', 'description' => $media['description'] ?? '', 'created_at' => $createdAt, 'fk_user_creat' => $fkUserCreat, 'updated_at' => $updatedAt, 'fk_user_modif' => $fkUserModif ]; try { // Insertion dans la table cible $insertStmt->execute($mediaData); $inserted++; } catch (PDOException $e) { echo "ERREUR: Migration du média : " . $e->getMessage() . "\n"; $errors++; } } // Afficher uniquement s'il y a des erreurs if ($errors > 0) { echo "ERREUR: $errors erreurs lors de la migration de la table medias." . 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); }