【发布时间】:2017-11-15 20:47:04
【问题描述】:
在 3.5.2 中引入了 rollbackSplitStatements 和 rollbackEndDelimiter,以允许我们在多行中编写回滚语句,而不必用“--rollback”标记每一行,或者至少我假设来自 PR (https://github.com/liquibase/liquibase/pull/334 )。
但是我没有看到任何关于如何使用它的文档。
举个例子:
--changeset auth:1.1 rollbackSplitStatements:false rollbackEndDelimiter:/
DELETE FROM my_table WHERE id = 3;
--rollback
insert into my_table values (
3,
'firstname',
'lastname'
);
/
这会在迁移期间引发错误:
运行 Liquibase 时出现意外错误:错误:“/”处或附近的语法错误
或者,这不会引发错误,但会在迁移期间执行“--rollback”下的语句:
--changeset auth:1.1
DELETE FROM my_table WHERE id = 3;
--rollback rollbackSplitStatements:false rollbackEndDelimiter:/
insert into my_table values (
3,
'firstname',
'lastname'
);
/
【问题讨论】:
-
SQL 语句以
;终止,/没有意义。最后你有什么/? -
如果将结束分隔符设置为
\n/? -
我尝试了不同的 rollbackEndDelimiters,但都没有奏效。我只使用了“/”,因为我在示例中看到过它。
-
@a_horse_with_no_name 请参阅docs中的 SQL 示例