web-dev-qa-db-ja.com

Flywayベースライン機能は何に適していますか?

Flyway Webサイトで利用可能なすべてのドキュメントを読んでいるにもかかわらず、私はまだベースラインが何のために良いのか理解していません。誰かがそれを平易な英語で説明し、このコマンドのいくつかのユースケースに言及できますか?

37
Libor Jelinek

たとえば、バージョンV1_0__baseline.sqlでデータベースをベースライン化すると、FlywayはV1_0の後に作成された移行スクリプトのみを適用するように指示されます。これを行うには、Flywayが使用するSCHEMA_VERSIONテーブルに移行エントリを挿入します。移行を実行すると、使用可能な移行スクリプトは、バージョンがベースラインバージョンよりも高い場合にのみ適用されます。

Flywayを実動および開発データベースで使用したい場合。実稼働のスキーマのみのダンプを作成します。これは、Flywayを使用して新しい空のデータベースを作成するときに適用される最初の移行スクリプトです。

ただし、既存のプロダクションおよび開発マシンはすでにこのバージョンにあるため、この初期スクリプトを適用することは望ましくありません。これを防ぐには、SCHEMA_VERSIONテーブルを作成し、テーブルに「1_0」を挿入して、データベースがすでに1_0にあることをFlywayに指示します。このテーブルを手動で作成してSQL経由で行を挿入する代わりに、Flywayベースラインコマンドを実行できます。

その後、数週間後、Flywayに持ってこなかったが、更新スクリプトをまだ適用している別のデータベースがあります(時間がないかもしれません)。このデータベースをFlywayに取り込む際、V3_0または他のバージョンでベースラインを作成する必要がある場合があります。

48
Kevin