2

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

我试过:

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

在列定义中使用它:

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

但这不起作用...

4

1 回答 1

1

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

column(name: "my_column", type: '${boolean.type}')
于 2013-01-23T00:37:09.453 回答