raz*_*azr 5 java database flyway
我已将 Flyway 集成到我的一个项目中。我有很多迁移,迁移一个新的空数据库需要很长时间,主要是因为一路上还添加了种子数据。现在我想改变它。不幸的是,这些迁移已经被推送到生产中(是的,在某些时候种子数据也被迁移到了那里)。
我的想法是为当前版本的生产系统设置基线,然后清理旧的迁移:压缩模式迁移并将种子和测试数据移动到一个新位置,该位置未部署到生产中。
现在我的问题是:
flyway baseline ...直接调用数据库?或者我可以使用任何类型的特殊迁移文件吗?也许将基线行直接写入schema_version数据库的表中?这样的查询会是什么样子?V4_6_3__.... 所以我的基线需要开启V5__...?还是V4__...包含所有具有相同主要版本的迁移就足够了?对于基本问题很抱歉,但在我看来,飞行路线文档根本没有帮助......
提前致谢!
抱歉回复晚了。我做了一件与@markdsievers建议的非常相似的事情:
我保证生产环境至少是X(flyway.setTarget(X))版本。然后我更改为新的架构版本表 ( flyway.setTable('temporary_schema_version')) 并运行一次迁移,删除了旧表。之后,我将架构版本表更改回原始表,为版本设置基线Y > X,并运行另一次迁移来删除临时表。
现在我可以编辑/压缩/删除版本低于该版本的所有迁移,而Y不会导致我的生产部署崩溃。
| 归档时间: |
|
| 查看次数: |
2844 次 |
| 最近记录: |