我们的系统如何让flyway重新运行迁移?
我们正试图把移民作为.sql文件版本控制之下。开发人员可以编写一个VN __ * SQL文件,承诺版本控制和运行每5分钟会自动迁移到一个开发和测试数据库的工作。一旦变更证明不会导致问题,其他人就会运行手动工作来运行生产迁移。
我的问题:
我创建了几桌演示迁移。我在我的PC上检查了V4__DemoTables.sql进入版本控制。
在我们的Linux机器运行中提取从版本控制的新文件,每次5分钟,然后跑了flyway.sh文件中的作业。它检测到该文件并执行它。
但.sql文件有一个错字。而且我们使用的Neteeza与flyway有问题,自动在BEGIN TRAN ... END TRAN中包装迁移。所以迁移创建了2个表格,然后在第三个表格之前中止。
没问题我以为。我删除了.sql文件创建的两个表。检查V4__版本控制,修正了错字并重新提交。
五分钟后提取的更新,但飞行用抱怨的校验和不匹配。所以它不会运行更新的V4__DemoTables.sql文件。
如何获得flyway接受更新的文件并在出现错字时更新SCHEMA_VERSION文件中的校验和?
阅读文档,似乎开发人员建议我应该使用修补程序创建一个新的V4_1_DemoTables.sql文件。但是这会与V4__文件中的命令相冲突,所以这看起来不对。
所以这是该文档意味着我需要做的:
离开V4__作为一个“成功”的迁移根据 SCHEMA_VERSION表。
创建V4_1_删除是在V4__错字 线之前创建的表。
创建V4_2_具有从原始文件错字修复完成所有 真正的工作。
这是正确的吗?
感谢您的快速回复。我不知道如何将前一行标记为当前。 – 2012-07-24 22:23:41