2012-08-16 66 views
0

我正在使用dbdeploy maven插件,但在運行構建時會引發錯誤。錯誤說:Dbdeploy maven插件未找到更改日誌表

[ERROR] com.dbdeploy.exceptions.SchemaVersionTrackingException: Could not retrieve change log from database because: user lacks privilege or object not found: CHANGELOG 

這是因爲dbdeploy用途更新日誌表尚未創建。我可以看到它是如何使用示例中附帶的ant構建腳本完成的,但我無法弄清楚如何使用maven插件完成它(我不想在maven下運行ant任務,這會導致失敗dbdeploy-maven-plugin的要點)。

任何想法?

+0

你可以發佈你使用的插件配置的代碼片段嗎?這可能會提供一個線索 – Raghuram 2012-08-16 16:35:58

回答

2

通過dbdeploy源代碼和dbdeploy maven插件源,我無法看到正在創建更改日誌的任何地方。與代碼捆綁在一起的例子不起作用,我得到的印象是它已經完成了一半,測試也很差。

我手動創建更新日誌表,然後事情工作,但這是一個糟糕的解決方案。謝謝,雖然對於我來說已經太晚了,但我最終還是發現了其他人,他們的解決方法是here。簡而言之,他們通過調用maven sql插件來運行創建更改日誌的腳本。

這些都沒有在dbdeploy站點中記錄,我可能會考慮替代品,因爲這一切都感覺有點flakey。

0

運行以下命令作爲Using Maven Plugin頁記載...

mvn help:describe -Dplugin=com.dbdeploy:maven-dbdeploy-plugin -Ddetail 

我們看下面的目標,這有助於產生的changelog

dbdeploy:change-script 
    Description: Maven goal for creating a new timestamped dbdeploy change 
    script. 
    Implementation: com.dbdeploy.mojo.CreateChangeScriptMojo 
    Language: java 

    Available parameters: 

    name (Default: new_change_script) 
     Expression: ${dbdeploy.script.name} 
     Name suffix for the file that will be created (e.g. 
     add_email_to_user_table). 

    scriptdirectory (Default: ${project.src.directory}/main/sql) 
     Expression: ${dbdeploy.scriptdirectory} 
     Directory where change scripts reside. 

所以我想我們會運行此之前到像db-scriptsupdate這樣的其他目標。

+1

通過dbdeploy maven插件代碼,我可以看到這個答案不正確。更新日誌不會在任何地方創建。 – DaveRlz 2012-08-20 12:00:34