Oracle 中的 Liquibase 部署后脚本

问题描述 投票:0回答:2

我正在使用 .sql 文件作为 Liquibase 变更集。在预部署步骤中,我运行一些脚本,例如禁用 Oracle 作业等。当出现任何错误时,Liquibase 停止运行下一个脚本。

无论如何,我想运行部署后步骤脚本。

Liquibase 有任何选项吗?

始终运行 sql 脚本,以防失败或成功。

deployment liquibase
2个回答
0
投票

Liquibase 没有任何部署后解决方案。我可以看到两种方式:

  1. 您可以编写一个扩展来实现执行后操作 -> https://contribute.liquibase.com/extensions-integrations/extensions-overview/your-first-extension/
  2. 当变更集失败时,Liquibase 会停止处理,除非您设置failOnError=false -> https://docs.liquibase.com/concepts/changelogs/attributes/fail-on-error.html 。将此参数添加到所有变更集中将使其运行到最后 - 但您需要检查日志中的错误,因为 liquiabse 将成功执行。

0
投票

无论如何,我想运行部署后步骤脚本。 Liquibase 有任何选项吗?

是的,您可以使用

runOrder
变更集属性:

runOrder
属性指定变更集是否应在所有其他变更集之前或之后运行,而不是根据其在变更日志中的顺序顺序运行。有效值为
first
last
runOrder
格式化的 SQL 变更日志不支持。

要在最后运行变更集,请将其

runOrder
设置为
last

始终运行 sql 脚本,以防失败或成功。

那会有点复杂。您可以将

runOrder
preConditions
runAlways
failOnError
结合使用。另外,请记住验证您的
rollback
陈述。

或者,您可以使用部署管道功能来运行部署后操作。

© www.soinside.com 2019 - 2024. All rights reserved.