2012-08-16 65 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