我有一个非常复杂的迁移来执行。它无法用SQL完成,我必须使用Java。我已经单独处理每一行,不可能进行大量更新。让事情变得更复杂:我的一个客户在表中有几十亿行,其他客户只有几百行。如果我尝试迁移大型数据库表,我肯定会遇到内存问题。在某些时候,事务内存耗尽。
我需要的是逐块迁移并多次调用迁移步骤。理想情况下,我的JdbcMigration
实施可能会返回一条信息,例如“我还没有完成,请再次给我打电话”或“我已完成,您可以继续下一个迁移步骤”到flyway系统。如果我有这个功能,我会例如处理多达100万个条目并让flyway提交交易。只要有未经处理的条目,我就会重复这一点。
不幸的是,migrate(Connection)
的方法JdbcMigration
具有void返回类型。有没有办法给飞路这样的回应?
亲切的问候, 基督教
答案 0 :(得分:0)
目前没有直接的支持。但是,您可以在JdbcMigration中自行发出提交,请记住,如果发生错误,Flyway发布的回滚将不再具有相同的效果。