2015-02-10 114 views
1

我已經添加了新的變更到migrations.xml但是當我運行db migration config-file它並不適用於新的變更只是下面的輸出:Dropwizard遷移Liquibase新的變更不遷移

INFO [2015-02-10 12:59:34,193] liquibase: Successfully acquired change log lock 
INFO [2015-02-10 12:59:34,809] liquibase: Reading from public.databasechangelog 
INFO [2015-02-10 12:59:34,821] liquibase: Successfully released change log lock 

我有兩個變更和只有第一個被應用。例如:

<changeSet id="1" author="me"> 

<changeSet id="2" author="me"> 

另外我只看到databasechangelog表下的第一個changeset條目,這很奇怪。

如何使其應用我的新變更集?

+0

你可以使用'--loglevel = debug'運行並共享那個輸出嗎?它會爲您提供更多關於每個變更集的詳細信息。 閱讀更多,我看到你使用的是dropwizard,而不是直接使用liquibase - 如果在dropwizard中有一種方法讓它通過調試標誌運行liquibase,我不會告訴你。 – SteveDonie 2015-02-10 15:21:24

+0

從dropwizard文檔:有關可用命令的更多信息,請使用db --help命令,或者有關特定命令的更多詳細幫助,請使用db --help。 – SteveDonie 2015-02-10 15:28:24

回答

2

我遇到了類似的問題,最終意識到migration.xml文件打包在生成的jar文件中。每次更改migrations.xml時,都需要重新編譯jar。

您還可以使用--migrations標誌來指定它位於jar之外的遷移文件。

0

我們遇到了類似的問題。我們的問題是,我們只輸出stdout到日誌文件,但liquibase會將與stderr相關的任何錯誤都放在默默無聞的位置。

對於實際的錯誤:我們實際上在變更集1中存在哈希不匹配(與存儲在數據庫中的數據相比),這就是爲什麼變更集2沒有運行。