0

Liquibase2.0.5を使用しています。私は次のプロセスを持っています:

  1. Liquibaseの変更をXMLファイルにエクスポートします。
  2. データベースにログインし、dbコマンドを実行します(例ALTER TABLE ...
  3. 手順2で行った変更をLiquibaseチェンジセットとしてエクスポートします。

私の質問は、ステップ3をどのように行うかです。次のスクリプトを使用して、手順1を実行します...

/opt/liquibase/liquibase --driver=com.mysql.jdbc.Driver \
  --classpath=~/.m2/repository//mysql/mysql-connector-java/5.1.15/mysql-connector-java-5.1.15.jar \
  --changeLogFile=~/db.changelog.xml \
  --url="jdbc:mysql://localhost:3306/db" \
  --username=user \
  --password=pass \
  generateChangeLog
4

1 に答える 1

6

ALTER TABLE「手動」のステートメントを実行するべきではありません。Liquibaseを使用すると、すべてのスキーマ変更がLiquibaseを通過するはずです。手動ALTERでステートメントを実行すると、Liquibaseの目的が完全に無効になります。

本当に、本当にLiquibaseをバイパスすることを避けられない場合は、diffまたはdiffChangeLogコマンドを使用してデルタを表示します(http://www.liquibase.org/manual/command_line

定期的にそれを行っていることに気付いた場合は、Liqubiaseを使用する理由と方法を再考する必要があります。

于 2013-02-25T15:04:30.370 に答える