6.4. Mettre à jour la base de données
6.4.1. Créer un delta de mise à jour
Premièrement créer une nouvelle branche pour votre modification du modèle
Modifier le code SQL de création selon le besoin
Créer le fichier delta SQL correspondant dans data-model/update/delta. * Le fichier doit être nommé : delta_{tag_number}_{increment}_{short description}.sql voir cycles de release et versionnement
Pousser votre branche et contrôler les résultats de Travis
Si les tests de Travis sont au vert, vous pouvez créer une pull request pour fusionner vos modifications dans le tronc master
Note
Le modèle de donnée doit être Taggé. Le Tag doit respecter la syntaxe suivante : x.x.x. Pour chaque version majeur, le tag DOIT être x.0.0
6.4.2. Migrer une base de donnée existante
Si vous utilisez une ancienne version du modèle de donnée QWAT, vous pouvez le mettre à jour en suivant les instructions ci-dessous :
Avertissement
Vous devez toujours sauvegarder votre base de donnée courante avant toute mise à jour.
Ouvrir un terminal et se déplacer dans qwat_project/data-model/update
- Lancer la commande de mise à jour :
./upgrade_db.sh
Ceci testera le processus de mise à jour
- Lancer la commande de mise à jour :
Si le processus de migration est au vert, lancer ensuite une deuxième fois la commande en indiquant le paramètre pour mettre à jour la vraie base de données :
./upgrade_db.sh --upgrade yes
Note
Votre .pg_service.conf doit contenir les connexions vers les bases de données qwat, qwat_test et qwat_conform
6.4.3. Fonctionnement
Un tag est attribué pour une version x.0
Dans /update/delta/ directory se trouvent les fichiers SQL qui contiennent les évolutions courantes (delta). Si on exécute init_qwat.sh dans le dossier git courant, la base de donnée générées correspond à la même base de données que si init_qwat.sh en version x.0 est exécuté.
Pour un utilisateur, le processus de migration consiste en :
Récupérer la version de son modèle de données (est contenu dans le schéma système QWAT)
- Exécuter le script de migration, qui prend en compte le paramètre de ce numéro de version. Le script exécute les tâches suivantes :
pg_dump de la base de données QWAT
pg_restore du dump précédent dans une base de données test (qwat_test)
Exécute sur la base de données de test toues les deltas SQL dont le numéro est supérieur ou égal au numéro de version (les deltas SQL doivent être nommés delta_{tag_number}_{increment}_{short description}.sql)
- Exécuter le script de test de conformité :
Crée une nouvelle base de données : qwat_test_conform
Produit le fichier de référence (résultant du test SQL)
Compare la base de données de référence avec qwat_test produite précédemment
Si tout est OK, l’utilisateur est invité à poursuivre la migration sur sa base de données réelle
Si une erreur apparaît, l’utilisateur peut tenter de débugger lui-même l’erreur ou contacter l’équipe QWAT