我已经能够做到回滚只有架构更改标记,但我遇到了我在存储过程中混不工作的情况。
我正在对Oracle数据库使用SQL更改日志。下面是这种情况:回滚到标签不工作,如果应用到runOnChange标签变更集
版本1.0.0
我有一个脚本R-1.0.0.sql包含创建一个表,并创建一个存储过程的脚本proc.sql。 proc变更集被标记为runOnChange = true。
我很高兴与变化,我与标签标签1.0.0
数据库到底DATABASECHANGELOG表显示:
1 - R-1.0.0.sql执行的
2 - proc.sql- EXECUTED-(标签)1.0.0
版本2.0.0
我有一个脚本R-2.0.0是重命名列,我也更新proc.sql与新的列名。运行在此之后,DATABASECHANGELOG是:
1 - R-1.0.0.sql执行的
4 - proc.sql-RERAN-(标签)1.0.0
3 - R-2.0.0.sql执行的
您注意到重新运行PROC脚本有一个新的号码,但它仍然保持了1.0.0标签
如果现在我想回滚到标签1.0.0,ROLLBACK命令不执行任何操作,因为标签1.0.0对应于日志中的最新更改。
这似乎是设计。有没有不同的方式来组织我的更改,使其工作?
根据此线程,我应该能够为存储过程指定一个不同的更改日志表。 http://forum.liquibase.org/topic/configurable-databasechangelog-table-name。我仍在努力研究命令行。 –