Lors des phases de développement et de maintenance, il est souvent difficile de gérer les versions de bases de données différentes entre les différentes versions des applicatifs. On se retrouve souvent avec différents schémas de bdd qui ne possèdent jamais les bonnes versions des données. De plus, quand on souhaite mettre en production, il est difficile de faire la mise à jour des données de production en passant plein de scripts à la main.
Flyway se propose d’uniformiser les pratiques avec une librairie très facile à utiliser, pour faire la migration proche en proche des schémas de bdd !
Flyway permet de garder l’historique des modifications effectuées sur la base de données et de pouvoir les rejouer, ou de faire monter un environnement de version très facilement.
Permet de garder l’état de la base et des différentes migrations qui lui ont été appliqués. Il est très facile de voir, quels scripts sont passés ou non, et quand ceux-ci ont été passés.
Et le tout, avec simplement des scripts SQLLangage permettant de communiquer avec une base de données. horodatés ! On peut donc faire des grosses mises à jour sur la base et utiliser toutes nos compétences en SQL. En plus, on est pas obligé d’apprendre un langage supplémentaire... fantastique non ?
Points forts Flyway | Explications |
---|---|
Plain Old Sql | Les scripts sont écrits en SQL (natif), pas de format propriétaire. |
No limits | Il n’existe pas de limites aux manipulations qu’on peut effectuer sur la bdd. La limite est celle de SQL. On peut donc faire d’importantes mises à jour directement en base pour corriger des données par exemple. |
Zero required dependencies | Pas de besoin spécifique hormis une librairie JDBC... Donc c’est très simple à configurer et peut s’intégrer dans tous les projets. |
Convention Over Configuration | Il suffit à Flyway d’avoir une liste de fichiers à utiliser, pas besoin de configuration particulière. |
Highly reliable | Fonctionne très bien sur cluster. |
Cloud support | Support Amazon RDS, Microsoft SQL Azure, Google Cloud SQL, Heroku... du moment qu’on a une connexion à la bdd |
Auto-migration on startup | La migration de la bdd peut se faire au démarrage de l’application, ce qui permet de mettre les scripts directement dans l’application. On peut ainsi lancer le déploiement qui va lui-même mettre à jour la bdd. |
Fail fast | En cas d’erreur, Flyway bloque le démarrage de l’application. Typiquement, quand dans un merge de branch, un script n’est pas à la bonne date... |
Schema Clean | On peut nettoyer l’intégralité du schéma (vue, table, trigger) sans avoir à tout recréer. |
Concrètement, comment utiliser Flyway | L’installation de Flyway se fait simplement en installant la librairie. Si vous utilisez Gradle ou Maven, ceci ce fait hyper simplement. |
Objectivement, la force de flyway est sa simplicité. Il s’avère particulièrement efficace et on ne se retrouve presque jamais bloqué. Donc, vu de notre fenêtre, pas de gros défaut à déclarer !
Typiquement, les fichiers sont tous horodatés. Ce qui permet à Flyway de les passer dans l’ordre chronologique. A savoir, Flyway utilise aussi un hash des fichiers pour s’assurer que les fichiers ne sont pas modifiés une fois passé en production.
Ici la configuration gradle.properties afin de se connecter à la base de données.
Pour avoir utilisé de nombreux autres outils (on peut citer par exemple Liquidbase, qui objectivement est super pénible à utiliser au quotidien), Flyway remporte la palme d’or de cette catégorie d’outil. Nous le recommandons donc chaudement!
Découvrez la planche #28 !
Le déboggage est une étape essentielle lors de la création d’une application mobile et même plus simplement quand on code. Avec Ionic, cela peut être compliqué à mettre en place. C’est pour cela qu’aujourd’hui, nous allons vous montrer comment installer C
Talend ETL - Définition et explication des concepts de TALEND ETL (Extract Transform and Load). Comprendre Talend et son utilité pour ses projets.