この記事では、元のアドレスフライウェイ公式文書を翻訳しhttps://flywaydb.org/getstarted/howを
あなたは、空のデータベースにフライウェイ最もポイントを起動したとき。
それは見つけるためにしようとするスキーマ履歴テーブルを自分でフライウェイ、今回は、データベースが空の場合、作成するために履歴テーブルを。
あなたは今だけ、空のテーブルが含まれていflyway_schema_history (デフォルト)のデータベースを
このテーブルには、データベースの状態を追跡します
そして、フライウェイはすぐに移動、SQLまたはJavaファイルのファイル・システムやアプリケーション・クラスパス(クラスパス)は移行をサポートすることができますスキャンします。
マイグレーションは、バージョン番号に従ってソートおよび実装が続きます。
各マイグレーションが実行されると、schema_history履歴テーブルなどは、レコードを更新します
flyway_schema_history
installed_rank |
バージョン |
説明 |
タイプ |
スクリプト |
チェックサム |
installed_by |
installed_on |
実行時間 |
成功 |
1 |
1 |
初期セットアップ |
SQL |
V1__Initial_Setup.sql |
1996767037 |
アクセル |
2016年2月4日22:23:00.0 |
546 |
真 |
2 |
2 |
まず変更 |
SQL |
V2__First_Changes.sql |
1279644856 |
アクセル |
2016年2月6日09:18:00.0 |
127 |
真 |
さて、メタデータと初期状態が所定の位置にあり、我々は次の議論できるの新しいバージョンへの移行
フライウェイには、ファイル・システムをスキャンし、バージョン番号がより低いまたは遊走を無視している現在のバージョン番号に等しい場合、過去移行テーブルに基づいて、クラスパスは、確認するために再適用します。
剩下的迁移是增量迁移(pending migrations),准备就绪,但未执行
它们会按照版本号排序并依次执行:
schema_history历史表会依此更新记录:
flyway_schema_history
installed_rank |
version |
Description |
type |
Script |
checksum |
installed_by |
installed_on |
execution_time |
success |
1 |
1 |
Initial Setup |
SQL |
V1__Initial_Setup.sql |
1996767037 |
axel |
2016-02-04 22:23:00.0 |
546 |
true |
2 |
2 |
First Changes |
SQL |
V2__First_Changes.sql |
1279644856 |
axel |
2016-02-06 09:18:00.0 |
127 |
true |
3 |
2.1 |
Refactoring |
JDBC |
V2_1__Refactoring |
axel |
2016-02-10 17:45:05.4 |
251 |
true |
That’s it! 每次数据库需要改进时,无论是DDL或DML,只要创建一个版本号高于目前版本的迁移就行,下次Flyway启动时,它会依次进行数据库的升级操作。
DDL: Data Definition Language 数据库定义语言
DML: Data Manipulation Language 数据库操作语言