Upload
cedric-gillet
View
84
Download
2
Embed Size (px)
Citation preview
L’existant
● Réalisation d’un schéma sous powerAMC (MPD)
○ Permet de normaliser les relations○ Partage du schéma via le référentiel (internes /
service stats / RAP)○ Ajout des schémas dans confluence
L’existant
● Récupération des scripts SQL depuis PowerAMC
○ Dans le meilleur des cas : génération de tous les scripts si “from scratch”
○ Récupération de morceau de script via la prévisualisation
L’existant
● Création des script pour la base H2○ Permet de monter une base de données et de
charger un jeu de données à chaud pour la réalisation des tests d’intégration
● Création des scripts pour la MEP ○ Ajout de ces scripts au document de MEP sous
confluence
Les problèmes rencontrés
● PowerAMC
○ Génération des scripts ok si “from scratch” mais gestion des deltas très peu intuitive et aléatoire
○ Suivi des évolutions et des versions compliquées et peu intuitive
Les problèmes rencontrés
● H2
○ Script de chargement à maintenir spécifiquement pour les tests
○ Retravaille des scripts depuis PowerAMC systématique
Les problèmes rencontrés
● Script pour la MEP○ Demande une grande rigueur dans la maintenance
des scripts○ Retour arrière presque jamais réalisé○ Exécution manuelle uniquement○ Partage et suivi des évolutions des scripts
laborieuses
La solution : Liquibase
● Langage XML pour décrire les scripts à exécuter en base
○ Même langage de script quelque soit la base de données (MySQL, H2, etc.)
○ Format arborescent pour une meilleur lisibilité des blocs de chargement
La solution : Liquibase
● Permet de suivre les évolutions des scripts via SVN
○ Utilisation d’outils connus et standards (SVN)
○ Meilleur suivi des évolutions des schémas
La solution : Liquibase
● Lancement des scripts au chargement de l’application
○ Permet de faire des exécutions conditionnelles et de prévoir des scripts de retour arrière
○ Intégration des scripts de chargement de la base de données dans les livrables (WAR)
○ Un pas vers l’industrialisation des livrables
La solution : Liquibase
● Suivi des scripts déjà chargés directement dans des tables spécifiques Liquibase
○ Création par Liquibase de deux tables : lock de chargement, suivi des scripts
○ Tolérance au clustering○ Possibilité de faire un reverse engineering sur l’
existant et de considéré les scripts obtenus déjà exécutés
Et après
● Suppression des droits en écriture en intégration et production○ Oblige à la réalisation des scripts via liquibase pour
livraison en intégration○ Permet de garantir le suivi des évolutions en base
de données○ Fonctionnement par alter
Et après
● Un super-user connu par 3 personnes avec les droits en écriture en secours○ Permet de prévoir les cas ou Liquibase n’est pas
approprié○ Permet d’intervenir en urgence sur des problèmes
de production
Et après
● Réalisation des scripts de chargement H2 à l’aide de Liquibase○ Plus de maintenance des scripts spécifiques H2 en
dehors des données de test○ Une méthode, un seul type de fichier pour charger
les bases H2 et charger/mettre à jour les bases MySQL
Et après
● Quelques limites○ Chargement des scripts au démarrage des
applications => scripts à exécution relativement rapide
○ Autres limites à découvrir