flyway簡単に使う
1843 ワード
flywayはデータベース移行の利器として、以下で簡単にその使用を説明します.この例はmavenプラグインの形式でflywayを統合します.
1.pom.xml構成
2.スクリプトパススクリプトのデフォルトパスはclasspath:/db/migration です.
3.スクリプトの名前付け V1__スクリプト_説明.sql ここで、大文字Vは固定接頭辞であり、1はバージョン番号を表し、1.1,1.2などの小さなバージョンの書き方を採用することができる.バージョン番号の後ろに二重下線_、スクリプトの説明は後述しますが、スクリプトの説明の間には単一の下線を引くことができます.区切りの一番後ろにはsql接尾辞があります.
4.使用原則スクリプトがflywayで実行されると、スクリプトは変更できません.sqlを追加する必要がある場合は、sqlを新しいバージョンのスクリプトに入れるしかありません. 例えば、V 1_スクリプト1.sqlはすでに実行されており、新しいsqlはV 1バージョン番号より大きいスクリプトにしか入れられません.例えば、V 1.2_スクリプト2.sqlまたはV 2_スクリプト2.sql. flywayが最初に実行するとflawayが生成されます.schema_historyテーブルは移行の記録を維持します.
現在の最新バージョン番号を表すバージョンフィールドがあり、次回の実行時にflywayが現在のバージョンよりも大きなスクリプトファイルを自動的に検索して実行します. flaway_schema_historyには、実行したスクリプトに変化があるかどうかを確認するchecksumフィールドがあります. V 1_の場合スクリプト.sql、すでに実行して、それから中の内容を修正して、再びflywayを実行するとエラーが表示されます.これは、いったん実行したスクリプトが修正しない理由です.
4プラグインコマンドの詳細
flyway:clean
データベースのすべてのテーブルを明確にします(慎重に!!!)
flyway:baseline
デフォルトでは、データベースにテーブルがある場合、flywayを最初に実行するとエラーが表示されます.baselineを先に実行する必要があります.flywayは、現在のテーブルのバージョンが1であることを示すversion=1のレコードを生成します.スクリプトのバージョン番号は1より大きいものからのみ命名できます
flyway:mygrate
データベースの移行、デフォルトではflawayよりバージョン番号が検索されます.schema_history#vesionの大きなスクリプトは、複数ある場合は昇順に実行されます.スクリプトの移行が完了するたびにflaway_schema_historyは履歴を挿入します.
1.pom.xml構成
org.flywaydb
flyway-maven-plugin
6.2.3
generate-sources
migrate
com.mysql.cj.jdbc.Driver
jdbc:mysql://xxxxx:3306/xxx?useUnicode=true
xxxx
xxxxx
2.スクリプトパス
3.スクリプトの名前付け
4.使用原則
現在の最新バージョン番号を表すバージョンフィールドがあり、次回の実行時にflywayが現在のバージョンよりも大きなスクリプトファイルを自動的に検索して実行します.
4プラグインコマンドの詳細
flyway:clean
データベースのすべてのテーブルを明確にします(慎重に!!!)
flyway:baseline
デフォルトでは、データベースにテーブルがある場合、flywayを最初に実行するとエラーが表示されます.baselineを先に実行する必要があります.flywayは、現在のテーブルのバージョンが1であることを示すversion=1のレコードを生成します.スクリプトのバージョン番号は1より大きいものからのみ命名できます
flyway:mygrate
データベースの移行、デフォルトではflawayよりバージョン番号が検索されます.schema_history#vesionの大きなスクリプトは、複数ある場合は昇順に実行されます.スクリプトの移行が完了するたびにflaway_schema_historyは履歴を挿入します.