Instructions détaillées pour l'utilisation de Flyway
Jul 28, 2020 pm 06:31 PM1. Problèmes rencontrés dans la gestion de la base de données lors du développement :
De nos jours, le développement est généralement réalisé en équipes, il y aura donc des problèmes de synchronisation du projet. La synchronisation du code peut être gérée via les outils SVN, mais qu'en est-il de la synchronisation des bases de données ? Idéalement, lors du développement d'un nouveau projet, vous clarifierez d'abord l'activité, concevrez les tables de la base de données, puis confierez la base de données à un personnel spécialisé pour la maintenance, afin qu'il n'y ait pas de problèmes de synchronisation de la base de données. Mais quelle est la situation réelle ? Les exigences ne cessent de changer du début à la fin du projet. De nombreuses entreprises ne disposent pas de personnel dédié à la maintenance de la base de données. Ce serait bien si l'équipe communiquait en temps opportun et que tout le monde mettait à jour le code à chaque fois. temps. Base de données, si la communication n'est pas opportune, haha (vous pouvez vous faire votre propre idée). . . De cette manière, le problème de la désynchronisation des bases de données est mis en évidence.
2. Une brève introduction à Flyway :
1. Concept :
Flyway est. Outil indépendant de gestion des versions de base de données pour l'application, la gestion et le suivi des modifications de la base de données. En termes simples, Flyway peut gérer les scripts SQL de différentes personnes, tout comme SVN gère les codes de différentes personnes, réalisant ainsi la synchronisation des bases de données.
2. Types de bases de données pris en charge :
Oracle, SQL Server, SQL Azure, DB2, DB2 z/OS, MySQL (y compris Amazon RDS), MariaDB, Google Cloud SQL, PostgreSQL (y compris Amazon RDS et Heroku), Redshift, Vertica, H2, Hsql, Derby, SQLite, SAP HANA, solidDB, Sybase ASE et Phoenix.
3. Convention de nommage pour les scripts SQL :
V + numéro de version (les chiffres dans le numéro de version sont séparés par "." ou "_") + double soulignement (utilisé pour séparer le numéro de version et description) + description du fichier + nom du suffixe, par exemple : V2017.9.30__Update.sql.
Remarque : Les numéros de version ne peuvent pas être les mêmes !
4. L'emplacement par défaut dans lequel Flyway lit les scripts SQL :
Le répertoire db/migration sous le dossier source du projet.
5. Commandes :
Il y a 6 commandes de base au total : migrer, nettoyer, info, valider, baseline, réparer.
3. Avantages de Flyway :
1. Prend non seulement en charge les scripts SQL, mais prend également en charge le code Java pour faire fonctionner directement la base de données (flyway). -core-x.x.x. jar);
2. A un plug-in Maven ;
3. Prend en charge la ligne de commande
4. vérifier et mettre à niveau automatiquement la fonctionnalité de la base de données.
4. Utilisation de l'outil de ligne de commande Flyway :
1. Décompressez et téléchargez la version flyway-commandlin et décompressez-la localement. Le diagramme est le suivant :
2. Placez le script SQL dans le répertoire db/migration par défaut de Flyway. S'il est placé à d'autres emplacements, vous devez modifier flyway.locations dans la conf. /fichier flyway.conf.
3. Modifiez flyway.url, flyway.user, flyway.password dans le fichier conf/flyway.conf en fonction de votre propre situation.
4. Exécutez la commande migrate sur la ligne de commande.
5. Utiliser en conjonction avec les projets Maven :
1 Introduire les coordonnées de dépendance :
1 2 3 4 5 6 |
|
Créer dans le fichier src/main/resources. répertoire Le chemin pour stocker le fichier de version SQL est dataBase/sqlite (vous pouvez également écrire le chemin par défaut db/migration) et placez le fichier SQL ci-dessous.
3. Ajoutez la classe java flyway :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
4 Instanciez la classe java à l'étape 3 au printemps :
1 2 3 |
|
De. Dans la définition du bean ci-dessus, nous pouvons voir que nous avons injecté une source de données dans l'instance du bean flywayMigration. Toutes les opérations de Flyway seront effectuées sur cette source de données en même temps, nous avons spécifié Spring via l'attribut init-method lors de l'instanciation ; Ensuite, la méthode migrate du bean est activement exécutée et, au sein de cette méthode, Flyway met à jour la base de données. Jusqu'à présent, nous avons atteint le point où Spring instancie le contexte au démarrage de l'application, et lorsque Spring instancie le bean flywayMigration, Flyway met automatiquement à jour la base de données.
5. Gérer les conflits lorsque Flyway met à jour la base de données et que la logique du code exploite la base de données (je ne l'ai pas encore rencontré, je l'ai trouvé en ligne, conservez-le en cas d'urgence) :
Si Flyway est toujours là Avant de mettre à jour la base de données, une autre logique de l'application a commencé à utiliser la base de données pour d'autres opérations avant de terminer l'opération de mise à jour, ce qui entraînera la génération de nombreux bugs par l'application, voire son exécution inexistante. Pour résoudre ce problème, nous pouvons utiliser le principe de dépendance du bean de Spring pour que les beans d'opération de base de données clés dépendent du bean flywayMigration, de sorte qu'aucune autre opération liée à la base de données ne puisse être effectuée jusqu'à ce que flywayMigration soit instancié (l'opération de mise à jour de la base de données est terminée).
1 2 3 |
|
De cette façon, la base de données sera automatiquement mise à jour à chaque démarrage du projet, vous n'aurez donc pas à vous soucier de la désynchronisation de la base de données.
Tutoriel recommandé : "Tutoriel Java"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser le moteur Nashorn de Java pour les scripts avec JavaScript?

Comment utiliser les énumérations de Java pour représenter des ensembles de valeurs fixes?

Quels sont les différents algorithmes de collecte des ordures en Java (série, parallèle, CMS, G1, ZGC)?

Qu'est-ce que la machine virtuelle Java (JVM) et comment fonctionne-t-elle en interne?

Comment utiliser l'instruction TRY-With-Resources de Java pour la gestion automatique des ressources?
