grails database-migration - 即使没有域模型更改,也会生成更改日志

时间:2013-01-07 12:25:00

标签: grails database-migration

我们希望使用数据库迁移工具通过我们的Jenkins(Hudson)构建服务器在我们的UAT和实时系统中实现数据库架构更改。

最简单的方法是每次运行“-Dgrails.env = uat dbm-gorm-diff changelog-.xml --add”。但是,我的试验显示,即使域模型中没有任何更改,也始终会创建“空”更改日志并更新changelog-master.xml。这不太理想。

是否有一个我没有找到的选项,它说:“只在域模型发生变化时才创建更改日志”?

否则,我似乎必须在Ant构建脚本中添加步骤以在changelog-.xml文件中查找条目,如果没有找到:删除文件并从备份中恢复主更改日志,或编辑它以删除最新的“包含”条目。

如果有人有其他好主意,他们会非常欢迎。

问候,约翰

2 个答案:

答案 0 :(得分:1)

要避免:

grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix()适用于参数类型:( null)值:[null] at

您不必通过更改项目名称等来完成所有这些操作。您只需要清除

“path_to_user_dir”/。grails / projects /“project_name”/ scriptCache目录

答案 1 :(得分:0)

安装1.3.2似乎添加了一些删除插件时未删除的内容。对不起,不是一个非常科学的描述,但它是如何出现的。

我现在回到1.2.2,但无论我运行什么dbm- *脚本,我都会遇到同样的错误:

======================

错误执行脚本错误DbmGenerateGormChangelog:groovy.lang.MissingMethodException:没有方法签名:static grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix()适用于参数类型:( null)values:[null](注意:Stack已过滤跟踪。使用--verbose查看整个跟踪。) groovy.lang.MissingMethodException:没有方法签名:static grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix()适用于参数类型:( null)values:[null]     at _DatabaseMigrationCommon_groovy $ _run_closure1.doCall(_DatabaseMigrationCommon_groovy:37)     在DbmGenerateGormChangelog $ _run_closure1.doCall(DbmGenerateGormChangelog:23) 执行脚本DbmGenerateGormChangelog时出错:groovy.lang.MissingMethodException:没有方法签名:static grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix()适用于参数类型:( null)values:[null]

==============

我已经删除了1.3.2,重新安装了GGTS然后安装了早期版本,甚至回到1.2.1,然后返回到1.2.2,但没有变化。看起来我可能不得不尝试新的工作区,看看我是否可以让1.2.2再次工作。 Rgds,约翰