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}")
...
}
}
但这不起作用......
答案 0 :(得分:1)
在Groovy文件中"${boolean.type}"
是一个GString,因此Groovy正在尝试解析变量type
的属性boolean
。您需要使用单引号,以便Groovy单独保留字符串并让Liquibase执行dbms特定的替换:
column(name: "my_column", type: '${boolean.type}')