Liquibase使用SQL语句执行数据库变更
使用SQL变更可以使用任何你想要执行的SQL语句,比如Trigger。官方的Trigger是Pro版本才有的功能,若是不想购买License,退而求其次使用特定数据库的SQL来替代。
记录一下JSON格式的SQL ChangeType的定义,
{
"databaseChangeLog": [
{
"changeSet": {
"id": "sql-example",
"author": "liquibase-docs",
"changes": [
{
"sql": {
"dbms": "!h2, oracle, mysql",
"endDelimiter": "GO",
"splitStatements": true,
"sql": "insert into person (name) values ('Bob')",
"stripComments": true
}
},
"comment": "What about Bob?",
]
}
}
]}
更多的细节说明,可参见官方文档,下面是可用的一些属性,
属性名 | 描述 | 是否必须 |
---|---|---|
dbms | 指定适用于哪种数据库 | No |
endDelimiter | 指定SQL语句的结束字符,默认是; | No |
splitStatements | 设置为false不分割; 和GO 的SQL,默认为true | No |
sql | 指定需要执行的SQL语句 | Yes |
stripComments | 设置为ture移除SQL中的false,默认为false | No |
Note:SQL change type不支持Auto Rollback