[JAVA] Présentation de Flyway avec SpringBoot + Maven + PostgreSQL

Ruby on Rails a une fonction de migration de base de données par défaut, mais Spring Boot n'a pas d'autre choix que de l'installer vous-même. J'ai eu du mal à présenter Flyway, un outil de migration, alors je vais essayer de tout mettre en place.

Préparation

pom.xml


<dependency>
	<groupId>org.flywaydb</groupId>
	<artifactId>flyway-core</artifactId>
</dependency>

Je vais l'écrire comme ça dans la hiérarchie des dépendances. Puisque je souhaite utiliser la commande mvn ensemble, je spécifie également ce qui suit dans le plug-in.

pom.xml


<build>
         <plugins>
           <plugin>
               <groupId>org.flywaydb</groupId>
               <artifactId>flyway-maven-plugin</artifactId>
               <version>6.0.8</version>
               <configuration>
                   <url>Veuillez spécifier l'URL de la base de données?currentSchema=Si le schéma est spécifié du côté de la base de données, spécifiez-le.</url>
                 <user>Veuillez spécifier l'UTILISATEUR DB.</user>
                 <password></password>
                 <schemas>
                     <schema>ssp_engine</schema>
                 </schemas>
                 <baselineOnMigrate>true</baselineOnMigrate>
                 <baselineVersion>1.0</baselineVersion>
                     <baselineDescription>Initial</baselineDescription>
                 <locations>classpath:/db/migration</locations>
             </configuration>
           </plugin>
         </plugins>
</build>

Après cela, mettez à jour le projet avec Maven et importez le fichier jar.

Création du fichier d'instructions DB

Le nom du fichier est strictement déterminé, veuillez donc vous y référer. ・ Mémo d'utilisation de la voie aérienne

Dans mon cas, ça ressemble à ça. La hiérarchie est

-src/
  -main/
    |-java/
    |  -com/
    |    -example/
    |      -main.java
    -resources/
      -db/
        -migration/
          -V1_0__create_sequence.sql
          -V1_1__create_table.sql
          -V1_2__create_data.sql

Pour le contenu du fichier, créez un objet séquence, créez une table et écrivez le contenu.

Exécution de la commande

Dans votre terminal, accédez à la hiérarchie où se trouve le fichier cible et exécutez la commande suivante pour l'exécuter.

Effectuer la migration

mvn flyway:migrate

Supprimer tous les objets de la base de données

mvn flyway:clean

Afficher des informations sur la version de la migration en cours

mvn flyway:info

Vérifiez s'il y a une différence entre la version de la base de données et le fichier SQL préparé

mvn flyway:validate

Créer la version 1 de la base de données

mvn flyway:init

Supprimer la version des métadonnées qui est à l'état Échec

mvn flyway:repair

Impressions introduites

Pendant le développement en local, après avoir confirmé CRUD avec un formulaire, etc., mvn flyway: clean '' et mvn flyway: migrate`` ne peuvent être utilisés qu'à des fins de réinitialisation. Je voudrais demander s'il existe un moyen plus efficace de l'utiliser. ..

Recommended Posts

Présentation de Flyway avec SpringBoot + Maven + PostgreSQL
Transaction distribuée avec SpringBoot + PostgreSql + mybatis + NarayanaJTA
Prend en charge le multi-port avec SpringBoot
Changer de port avec SpringBoot
Essayez gRPC avec Java, Maven
J'ai essayé UPSERT avec PostgreSQL.
Introduction facile à la bibliothèque avec Maven!
Hello World avec SpringBoot / Gradle