1

私は、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 で説明されているように機能するはずです。

しかし、完全に自動化されたロールバックをどのように管理すればよいでしょうか?

  1. ロールバックも目標にすることはできますか?はいの場合: いつ実行されるかを制御するにはどうすればよいですか? プロジェクトで、更新とロールバックを無限に呼び出すループを誤って作成したくありません。

通常の方法は、backup1、update、run です。それが失敗した場合は、backup1 に戻ります。これは自動的に可能ですか?(プロジェクトの実行中に)何かが失敗すると、ロールバックを自動的に実行できなくなります。

4

1 に答える 1

0

Mavenでプラグインの実行を動的に有効/無効にすることはできないと思います。更新が成功するかどうかを事前に知っておく必要がありますが、もちろん成功しません。

これはAntで行うことができますが、更新プロセスの実行後に成功/失敗のプロパティを設定することで実行できます。また、 Maven AntRunプラグインを使用して、AntスクリプトをMavenに簡単に接続できます。

于 2013-03-22T12:41:37.603 に答える