Système de migration des données entre la version 3 et la version 4

Ce document décrit le processus de migration des données de l’application Pod depuis la version 3.8.x vers la version 4.0.x. Le système repose sur deux scripts principaux :

Prérequis


Exportation des données de Pod v3

Description de l’export

Ce premier script exporte les données de la base de données Pod v3.8.x vers un fichier JSON. Il prend en charge les bases de données MariaDB/MySQL et PostgreSQL et adapte les requêtes SQL en conséquence.

Attention, ce script doit être exécuté depuis un serveur de Pod v3.

La dernière version de ce script export_data_from_v3_to_v4.py est accessible ici : https://github.com/EsupPortail/Esup-Pod/tree/main/pod/video/management/commands

Il est nécessaire de récupérer ce script et de le positionner dans le répertoire pod/video/management/commands, avec les bons droits.

Fonctionnalités clés de l’export

Remarques importantes pour l’export

Vérifier votre custom/settings_local.py pour trouver le répertoire configuré dans BASE_DIR.

Consolidation des données

Il peut être utile avant de tenter un export de s’assurer de la consolidation des données. Un script “check_database_problems.py” dédié à cet usage est accessible ici : https://github.com/EsupPortail/Esup-Pod/tree/main/pod/video/management/commands

Il est nécessaire de récupérer ce script et de le positionner dans le répertoire pod/video/management/commands, avec les bons droits.

python manage.py check_database_problems

Le script va détecter et corriger d’éventuelles incohérences.

Exportation

Exécutez le script d’export depuis un serveur Pod v3 en utilisant la commande suivante :

python manage.py export_data_from_v3_to_v4

Importation des données dans Pod v4

Description de l’import

Ce script importe les données du fichier JSON généré précédemment dans une base de données de Pod v4. Il prend en charge les bases de données MariaDB/MySQL et PostgreSQL, lit les données du fichier JSON spécifié, les traite et les insère dans les tables appropriées de la base de données de Pod v4.

Fonctionnalités clés de l’import

Remarques importantes pour l’import

Vérifier votre custom/settings_local.py pour trouver le répertoire configuré dans BASE_DIR.

python manage.py index_videos --all

Importation

Exécutez le script en utilisant la commande de gestion :

python manage.py import_data_from_v3_to_v4

Arguments

Exemples

Mode simulation :

python manage.py import_data_from_v3_to_v4 --dry

Si la base de données est totalement vide (sans tables), il est possible d’exécuter cette commande qui réalise un make createDB avant l’importation des données :

python manage.py import_data_from_v3_to_v4 --createDB

Si vous avez rencontré une erreur de type Too many connections lors de l’importation des mots-clés, n’hésitez pas à augmenter la valeur de la variable time_sleep (genre 0.4 ou 0.5, en secondes) et relancer le traitement, mais seulement pour les mots-clés :

python manage.py import_data_from_v3_to_v4 --onlytags

Bien entendu, il est possible de mixer les différents arguments.


En suivant ces instructions, vous devriez pouvoir migrer avec succès votre base de données de Pod v3.8.x vers Pod v4.0.x.