我想提取我的生产数据库的预部署Flyway版本号,以便我可以在我的持续部署管道(Jenkins)中使用它,以防我稍后进行回滚。
我怎样才能做到这一点?
一个选项是查询flyway历史记录表,但我无法找到实现此目的的故障安全方法。
答案 0 :(得分:1)
我已经找到了答案,虽然感觉像是一个大黑客。我在迁移中运行了--dryRunOutput,作为让flyway将版本号输出到屏幕的方法,因为信息由于某种原因没有这样做。
我将输出读入文件(因为DOS使得管道或传入变量很难)然后隔离输出行以" Current"开头。然后我使用以下方式选择第二个令牌:作为我的分隔符。这可能是一种更简单的方法,我希望我可以使用flyway信息而不是迁移,因为我的方法感觉很乱,但至少它现在可以使用。
flyway -dryRunOutput=test.sql migrate | FIND "Current" >currentversion.txt
for /f "delims=" %%x in (currentversion.txt) do set CURRENTVERSIONLINE=%%x
for /f "tokens=1,2 delims=:" %%a in ("%CURRENTVERSIONLINE%") do set CURRENTVERSION=%%b
echo Version : %CURRENTVERSION%
答案 1 :(得分:0)
以下单行做你想做的事:
flyway info | grep Success | tail -1 | cut -f3 "-d|" | xargs