2016-11-10 10 views
0

私はLiquibaseを使用してアプライアンスのバックエンドSQLiteデータベースを管理しようとしています。アプリケーションをインストールすると、アプリケーションがアンインストールされ、以前のバージョンに置き換えられた場合に使用できるロールバックスクリプトが生成されます。Liquibaseで1日に複数のタグを作成するにはどうすればよいですか?

tagDatabaseチェンジセットを実行すると、その日の前に実行されたタグはすべて上書きされるという問題が発生します。 documentationをチェックすると、次の例のSQLとしてタグ付け操作を実行することを明らかに:だから

UPDATE DATABASECHANGELOG SET TAG = 'version_1.3' WHERE DATEEXECUTED = (SELECT MAX(DATEEXECUTED) FROM (SELECT DATEEXECUTED FROM DATABASECHANGELOG) AS X); 

、一日に複数のタグをしているのLiquiBaseをの範囲内の方法は何ですか?または、DATABASECHANGELOGテーブルを変更するために自分のSQLを調理する必要がありますか? Liquibaseの将来のバージョンではうまく機能しないので、私は後者をやっていません。

+0

"あなたは何を意味するのでしょうか?"という問題は、tagDatabaseチェンジセットを実行すると、その日の前に実行されたタグをすべて上書きするということです。 "あなたが指定したタグを持つデータベースの最後に実行されたチェンジセットをマークするだけです。上書きの問題は何ですか? – dbf

+0

私の問題は、既存のタグを上書きする際に、それらに対してロールバックを生成することができなくなることです。 –

答えて

1

あなたのデータベースにDATEEXECUTEDのように見えます(日付のみ)。時間のある日付型に変更することはできないのですか? 私はここでいくつかの議論を見た:https://github.com/liquibase/liquibase/pull/392は既知の問題のように見えるが、修正で述べたデータベースのリストにはsqlliteはない。 最新のバージョンを見てください。まだ修正されていないのであれば、まだサポートされていないかもしれません。プレーンなSQLクエリやカスタム変更(http://www.liquibase.org/documentation/changes/custom_change.html)を使ってこのタグロジックを実装する必要があります。

関連する問題