ブランチ間のバージョン管理の問題を克服して outOfOrder を有効にし、タイムスタンプをバージョン番号として使用するために私が見た最良の方法
デフォルトでは、ほとんどの移行フレームワークは、以下の例のように、個々の移行の前に整数を付けることを選択します。フレームワークは、現在のデータベースにまだ適用されていない移行を検出すると、プレフィックスがデータベースに存在しない最初の移行から開始し、昇順で適用を開始します。
- 1.0.0.1__add_customers_table.sql
- 1.0.0.2__add_email_address_column_to_customers_table.sql
- 1.0.0.3__add_orders_table_with_reference_to_customer_table.sql
これは、全員が同じコード ブランチにいる場合にうまく機能します。ただし、チームのメンバーが独自のブランチで作業を開始すると、プレフィックスの衝突の可能性が劇的に増加します。
ただし、整数ではなくタイムスタンプを使用して移行のプレフィックスを付けることを選択した場合、ブランチ間であっても衝突の可能性は事実上なくなります。たとえば、yyyyMMddHHmmssSSSなどのパターンを使用すると、上記の移行は次のようになります...</p>
- 1.0.0.20130704144750766__add_customers_table.sql
- 1.0.0.20130706132142244__add_email_address_column_to_customers_table.sql
- 1.0.0.20130706151409978__add_orders_table_with_reference_to_customer_table.sql
上記のタイムスタンプ パターンは、ミリ秒まで正確です。タイムスタンプが非常に正確であると、プレフィックスが読みにくくなる可能性がありますが、プレフィックスが正確であるほど、衝突の可能性は低くなります。
最良の結果を得るには、このタイムスタンプの作成を自動化して、チームのすべてのメンバーが一貫した形式を使用するようにします。
さらに、Flyway はタイムスタンプのプレフィックスも整数として扱うことに注意してください。これは、最初に整数を使用して Flyway で作業を開始した場合でも、いつでもタイムスタンプに切り替えることができることを意味します。タイムスタンプは非常に大きな整数であるため、最初のタイムスタンププレフィックス付きの移行は、最後の整数プレフィックス付きの移行の後に単純に適用されます。
ここから取得し、わずかに変更: http://www.jeremyjarrell.com/using-flyway-db-with-distributed-version-control/