GIT、Bamboo、Ansible、Liquibaseを使用して自動配信プロセスを編成しています。Liquibase - ファイルのバージョンが異なる
Liquibaseロールバック機能を使用する際に問題が発生しています。基本的に私は同じファイル、私の変更セットマスターとバージョンファイル(それぞれ独自のロールバックセクションを持っている)を持っていて、2つの異なる場所に "アップグレード"フォルダと "ロールバック"フォルダを持っています。ファイルは同じですが、ロールバックは単純に機能しません。説明:
+ deployment_folder
+ update
- changeset-master.xml
- changeset-1.0.0.xml
- changeset-1.0.1.xml
+ rollback
- changeset-master.xml
- changeset-1.0.0.xml
- changeset-1.0.1.xml
ファイルの内容はまったく同じです。 LiquiBaseをアップデートとタグ付けを実行
は大丈夫です:
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml update
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml tag 1.0.0
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml update
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml tag 1.0.1
ロールバックフォルダに変更し、マスターを使用して1.0.1から1.0.0にロールバックしようとしたときしかし、それは「LiquiBaseをロールバックが成功した」と言います変更はロールバックされません。 rollbackSQLコマンドには、DATABASECHANGELOGLOCK更新以外の関連するSQL文も表示されません。
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=rollback/changeset-master.xml rollback 1.0.0
されるファイルは、私は常に私のソース管理システムからのバージョンをプルする必要があり、私の場合、でshowブロッカーである、(チェックサムのために、私は仮定)とまったく同じである必要がありますように見えるので、ファイル彼らは同じ内容を持っているが、決して "同じ"ではない。 Liquibaseでこの検証を無効にする方法はありますか?現在、私はLiquibase 3.4.2を使用しています。
同じファイルを使ってロールバックを実行した場合は、忘れてしまいます。 –
Checkout ['logicalFilePath'](http://www.liquibase.org/documentation/databasechangelog.html)。私の知る限り、チェックサムにはフルパスのファイル名が含まれています。したがって、別のフォルダに同じファイルがあっても、別のフォルダとみなされます。 'logicalFilePath'を使うとこれを避けるべきです。 – Jens
ジェンスズ、あなたはそれを持っています。それはまさにそれです。どうもありがとうございました! –