gpt4 book ai didi

flyway - 从 Flyway Migrations 中删除可重复脚本的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-05 06:38:06 27 4
gpt4 key购买 nike

我目前正在使用 Flyway 命令行工具来管理我们的脚本,这些脚本将通过我们的 CI 构建服务器触发的发布过程来调用。

问题是我有 274 个可重复的迁移,涵盖包规范、包主体、函数、过程、 View 和物化 View 。

当我运行 migrate 时,一切都按预期进行,迁移执行之后是任何更改的可重复迁移,但可以说在下一个版本中我们要删除一个可重复迁移维护的对象。例如,我们要删除定义 ProcedureOne 的可重复脚本(即 R__ProcedureOne.sql)。

为此,我需要一个新的迁移脚本 (V3.1.5.1.01__DropProcedureOne.sql),但我也会删除可重复的迁移脚本,这样就不会再次创建和维护该对象。

但是,执行 flyway info 显示状态为 MISSING 的 R__ProcedureOne.sql 脚本。

虽然我同意它丢失了,但删除它是一种故意的行为,因为它不再需要而不是被放错地方。

我知道迁移选项 ignoreMissingMigrations,但我认为使用它会带来风险并可能掩盖真正丢失的文件。

关于如何最好地删除可重复脚本的一般指导是什么?

最佳答案

我建议您只保留文件但将其清空(即零字节)。或者在文件中添加注释,说明它代表的对象已被删除。

至于实际删除它,您建议的另一个选项可能是更新可重复迁移以删除自身,然后再次更新为零长度。这具有能够重播到空数据库中的优点;由于在版本化之后应用了可重复的迁移,因此您的示例中的过程将不存在而被删除。缺点是运行两次迁移。

关于flyway - 从 Flyway Migrations 中删除可重复脚本的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46668426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com