- Récupérez le mot de passe de la base de donnéees de production depuis
very_ansible
et déposez le dans./app/migration/.v1-pgpassword
- Lancer
./app/migration/export_v1.sh
(voir pour modifier leuser
dans le script)
Executez la commande: ./app/migration/local_run.sh
Cette commande est idempotent.
Pour tout clean en local et rebuild avec les dernières valeurs: ./app/migration/local_reset.sh
Il possible d'effectuer des filtrages sur les données importées (via les options
globale de la classe principale MainImport
)
De plus chaque héritant de Import::Base
peuvent utiliser les options
suivantes:
dump_sql
, dump un fichier sql ;load_from_sql
, load depuis un fichier sql (plus rapide).TABLE_NAME_filter
, lambda pour filtrer les entrées
Chaque type d'habilitation s'occupe de ses propres attributs dans la classe
situé dans le dossier app/migration/import/authorization_requests/
,
cela permet de simplifier les traitements. La classe
Import::AuthorizationRequests
s'occupe des attributs communs.
Pour l'import final il faure les creds d'OVH S3 dans le fichier .ovh.yml
sous le format suivant:
---
OVH_BUCKET: OVH_BUCKET
OVH_ACCESS_KEY_ID: OVH_ACCESS_KEY_ID
OVH_SECRET_ACCESS_KEY: OVH_SECRET_ACCESS_KEY
OVH_REGION: reg
Pour l'import d'HubEE il faut un fichier .hubee_config.yml
- Ajouter le mapping dans
Import::AuthorizationRequests#from_target_api_to_type
- Créer la classe spécifique pour le traitement des infos de ce type
d'habilitation dans
app/migration/import/authorization_requests/
- Les brouillons d'avant le 01/01/2022
- Dans les users, certains sont ajoutés à des organisations (mapping: id => sirets)
- Dans les demandes d'autorisations, certaines organisations sont fermées ou ont migrées (mapping: old_siret => new_siret)
- Certaines demandes dont les sirets ne sont pas des sirets (TBD qu'est-ce qu'on fait ici ?)
Ref https://pad.incubateur.net/xMY2MVZ1STexUrU8yfYMng
- Déploiement du code sur la machine
- Setup des variables (cf I.)
Le script (en local):
./app/migration/deploy.sh
Cela copie:
app/migration/.v1-pgpassword
Password de la database v1 ;app/migration/.ovh.yml
credentials OVH v1
Le script (à executer en remote):
(Penser à changer les variables)
# Staging
sudo -u root bash /var/www/datapass_reborn_staging/current/app/migration/run.sh
# Production
sudo -u root bash /var/www/datapass_reborn_production/current/app/migration/run.sh
Le process sur la machine distante (r) :
- Passage du site v1 en maintenance
- Récupération des dumps CSV
- Création de la base de données SQLite
- Nettoyage de la base locale
- Execution du script de migration (
MainImport
) - Alteration des séquences d'ID
- Passage de users en admin / instructeurs
ETA ~20min (le plus long reste II.r.7)