是否有一种以分阶段的方式使用liquibase调用外部脚本的方法?
我正在寻找类似于flyway回调的东西来调用外部脚本,如sh:https://flywaydb.org/documentation/callbacks.html
示例:
1)迁移前:运行sh script 1
2)运行迁移
3)迁移后:运行sh script 2
4)如果迁移失败:运行sh script 3
基本上是一种调用外部脚本的分阶段机制,作为迁移步骤的一部分。
感谢您的反馈。
谢谢
托比
答案 0 :(得分:0)
您可以使用http://www.liquibase.org/documentation/changes/execute_command.html
运行外部程序(包括sh脚本)如果要在每次迁移运行之前和之后运行某些内容,则需要以这样的方式构建主更改日志:
<changeSet id="preMigration" runAllways="true">
...pre migration
</changeSet>
...all your migrations are here
<changeSet id="postMigration" runAllways="true">
...post migration
</changeSet>
而且我不确定是否存在错误处理程序。
答案 1 :(得分:0)
谢谢dbf
我能够使用liquibase运行bat文件并将参数传递给它:
<property name="my_param_name" value="myValue"/>
<changeSet author="tobi" id="preMigration" >
<executeCommand executable="C:\projects\lbdemo\trunk\mybatfile.bat">
<arg value="Constant: ${my_param_name}"/>
</executeCommand>
</changeSet>
C:\ projects \ lbdemo \ trunk \ mybatfile.bat:
@echo off
if not exist "C:\Test\" mkdir C:\Test
set arg1=%1
(echo %arg1%) > C:\Test\EmptyFile.txt
mybatfile.bat将创建一个EmptyFile.txt并将my_param_name值写入其中。