移行 1.2.5 to 1.2.6

お約束の注意点

タスクを実行し忘れないように
Generateタスクだけでなく、(外だしSQLがある場合は)Sql2Entityタスクも実行

環境上の注意点

schema/schemadiffにpieceファイルができる

HistoryHTMLのメタデータであるdiffmapファイルの保存形式が変わりました。

いままで
project-history-[schema].diffmap という一ファイル
これから
schema/schemadiff配下にDB変更ごとの個別のdiffmap
e.g. diffpiece style @Directory
dbflute_maihamadb
 |-dfprop
 |-...
 |-playsql
 |-schema
 | |-schemadiff // since 1.2.6
 | |  |-2022
 | |  |  |-diffpiece-maihamadb-20220315-035402-427.diffmap
 | |  |  |-diffpiece-maihamadb-20220506-152734-812.diffmap
 | |  |  |-diffpiece-maihamadb-20220506-155155-198.diffmap
 | |  |-2021
 | |  |-...
 | |
 | |-project-history-maihamadb.diffmap // until 1.2.5
...

基本的に何も気にせず移行できます。そのままgitにコミットしてください。

(HistoryHTMLを構築する上でとても重要なファイルで、ロスすると復元できません)

いままでの project-history-...diffmapファイルも残り続けます。新しいDB変更のものが個別のdiffmapになって、DBFluteが読み込むときはマージされます。

pieceファイルにした理由

この変更には二つの目的があります。

  • A. diffmap巨大ファイル化の抑制
  • B. 複数人で並列で自動生成したときのコンフリクト

そもそも複数人で並列で自動生成する運用になっていなければほとんど関係ないですが、何かしらの理由でタイミングがズレてしまったときはDBFlute関連のファイルでgitコンフリクトが発生します。

コンフリクトのほとんどのファイルは自動生成されたファイルなので、自動生成し直せば問題ありません。 ただ、diffmapはメタデータなので、コンフリクトしたらしっかりマージしないといけませんでした。

これからは、個別のファイルに分割されるので、gitコンフリクトが起きることはほぼありません。 (厳密には、自動生成するタイミングミリ秒単位で完全一致した場合は、同名ファイルでコンフリクトになりますが、1000年経っても発生しないでしょう)

実装上の注意点

特になし