如何使用Grails';数据库迁移插件';什么是Groovy DSL?

如何使用Grails';数据库迁移插件';什么是Groovy DSL?,grails,groovy,grails-plugin,database-migration,Grails,Groovy,Grails Plugin,Database Migration,您能给我一个使用modifyDataType方法的groovy变更集示例吗 我试过这个: databaseChangeLog = { changeSet(author: "user", id: "5-1") { modifyDataType(tableName: "test", columnName: "description4", newDataType: "int(11)") } } 但无法识别modifyDataType。我还尝试了modifyColumn,但

您能给我一个使用
modifyDataType
方法的groovy变更集示例吗

我试过这个:

databaseChangeLog = {
  changeSet(author: "user", id: "5-1") {
        modifyDataType(tableName: "test", columnName: "description4", newDataType: "int(11)")
    }
}
但无法识别
modifyDataType
。我还尝试了
modifyColumn
,但得到了相同的结果


潜在的问题是:dsl支持什么样的标记,以及它们是如何使用的?

所有Liquibase重构都应该可以工作——Groovy dsl镜像了Liquibase XML。我没有对modifyDataType进行测试,但将其添加到了测试脚本中,效果很好-请参阅


如果您可以显示一些有关它如何失败的信息,那么找出问题所在将非常有用。

它的工作原理如下:

databaseChangeLog = {

  changeSet(author: "test (generated)", id: "1422541392309-2") {
    comment { 'Rename tabTitle to tabName' }
    renameColumn(tableName: "user", oldColumnName: "tab_title", newColumnName: "tab_name", columnDataType: "varchar(255)")
  }
}

由于插件仍在开发中(当前版本为0.2.1),文档可能不会像插件达到v1.0时那样完整。我本以为它会支持任何,但考虑到你的经验,显然不是吗?您可以随时尝试查看它是否可以添加到文档中。此外,FWIW更改域属性的名称并运行
dbm gorm diff file。groovy
使用
dropColumn
addColumn
创建变更集,而不是使用modify。也许重新命名/修改专栏已经在路线图上了。您可能可以编写自己的自定义变更集,以便在短期内迁移数据。尽管该插件仅在v0.2.1版本,但它非常稳定,实际上是1.0版本的候选版本。在正式的1.0版本发布之前,我想解决几个悬而未决的问题,当然它需要更多的文档,但除此之外,它的功能基本上是完整的。@Burt-同意它是稳定的(我并不是真的想暗示它不是)。我已经使用它一段时间了,并且对它非常满意。感谢您对它的开发。Master现在是Grails3插件,显然测试应用程序已经被移动了(我没有处理Grails3更新)。但是旧的插件在“1.x”分支中,引用的文件是