私はスキーマ変更だけでタグ付けすることができましたが、ストアドプロシージャを混在させるとうまくいかないシナリオに遭遇しました。
Oracleデータベースに対してSQLの変更ログを使用しています。タグがrunOnChangeチェンジセットに適用された場合、タグへのロールバックは機能しません
リリース1.0.0
私はテーブルを作成する含まれているスクリプトR-1.0.0.sqlを持っている、とストアドプロシージャを作成するスクリプトのproc.sql:ここではシナリオです。 procチェンジセットには、runOnChange = trueというタグが付けられます。
Iが変更に満足して、そして最後にDATABASECHANGELOG表に示すIタグ1.0.0
とデータベースにタグを付ける:
1 - R-1.0.0.sqlに実行さ
2 - proc.sql- EXECUTED-(タグ)1.0.0
リリース2.0.0
私は列の名前を変更するスクリプトのR-2.0.0を持っている、と私はまた、新しいカラム名でproc.sqlを更新しました。これを実行した後、DATABASECHANGELOGは:
1 - R-1.0.0.sqlに実行さ
4 - proc.sql-RERAN-(タグ)1.0.0
3 - R-2.0.0.sqlに実行さ
を維持し、ロールバックコマンドは、タグので、何もしないことがわかり
1.0.0は、ログの最新の変更に対応します。
これは設計によるものです。この作業を行うために変更を整理する別の方法はありますか?
このスレッドによれば、ストアドプロシージャのための異なる変更ログテーブルを指定できるはずです。 http://forum.liquibase.org/topic/configurable-databasechangelog-table-name。私はまだコマンドラインを理解しようとしています。 –