私は、liquibase-maven-plugin を使用して、Java ee プロジェクトでデータベースの変更にツール liquibase を使用しています。これまでのところ、ローカル マシンで試してみましたが、本番環境で次のステップに進む必要があります。
ローカル 更新、ロールバック、一種のチェックポイントとしてのタグの配置、およびバックアップの置き換えを行うことができます。更新はすでに完全に自動化されています。プロジェクトが実行される前に実行されます。
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.5</version>
<configuration>
..
</configuration>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
そして、ロールバックを実行して、次のようにコマンド ラインにタグを配置できます。
mvn liquibase:tag -Dliquibase.tag=release1
mvn liquibase:rollback -Dliquibase.rollbackTag=release1
生産サーバーでは、すべてを完全に自動化したいと考えています。主に、展開が失敗したときに db-rollbacks に興味があり、以前のバージョンのプロジェクトに戻る必要があります。
タグの設定はHow to tag a changeset in liquibase to rollback で説明されているように機能するはずです。
しかし、完全に自動化されたロールバックをどのように管理すればよいでしょうか?
- ロールバックも目標にすることはできますか?はいの場合: いつ実行されるかを制御するにはどうすればよいですか? プロジェクトで、更新とロールバックを無限に呼び出すループを誤って作成したくありません。
通常の方法は、backup1、update、run です。それが失敗した場合は、backup1 に戻ります。これは自動的に可能ですか?(プロジェクトの実行中に)何かが失敗すると、ロールバックを自動的に実行できなくなります。