如何使用Grails的数据库迁移插件的Groovy DSL修改列?

时间:2011-06-02 17:43:53

标签: 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,但我得到了相同的结果。

基本问题是:dsl支持哪种标签,以及它们是如何使用的?

2 个答案:

答案 0 :(得分:9)

所有Liquibase重构都应该有效 - Groovy DSL反映了Liquibase XML。我没有对modifyDataType进行测试,但将其添加到我的测试脚本中并且工作正常 - 请参阅https://github.com/grails-plugins/grails-database-migration/blob/master/testapp/price.changelog.groovy

如果能够显示一些有关它失败的信息,那么找出错误是有用的。

答案 1 :(得分:0)

它会像这样工作:

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)")
  }
}