Grails数据库迁移,属性与db无关

时间:2013-01-22 09:14:33

标签: grails database-migration liquibase

Grails-database迁移插件中是否有一种方法可以定义迁移文件中的属性,以便能够定义数据库无关的迁移,就像在Liquibase中一样?

我尝试过:

databaseChangeLog = {
property([name:"boolean.type", value:"bit(1)",dbms:"mysql" ])
property([name:"boolean.type", value:"number(1,0)", dbms:"oracle"])
...
} 

在colum定义中使用它:

changeSet(author: "me", id: "121112341-1") {
createTable(tableName: "test_table") {
...
column(name: "my_column", type: "${boolean.type}")
...
}
}

但这不起作用......

1 个答案:

答案 0 :(得分:1)

在Groovy文件中"${boolean.type}"是一个GString,因此Groovy正在尝试解析变量type的属性boolean。您需要使用单引号,以便Groovy单独保留字符串并让Liquibase执行dbms特定的替换:

column(name: "my_column", type: '${boolean.type}')