飞行中数据插入/更新脚本的最佳实践

问题描述 投票:1回答:2

场景:我有两个数据库。

第一个数据库是用于测试的空白数据库。我基本上运行flyway:migration并使用完整的架构构建数据库,然后针对该空白数据库运行集成测试。在运行测试之前,将插入集成测试所需的任何数据。最后,使用flyway:clean删除数据库,以确保通过的下一个构建版本具有干净的db。

第二个数据库中有数据。

问题:在集成阶段构建失败,因为我的迁移脚本依赖于数据库1没有的数据。基本上,我是基于数据库中存在的某些数据来插入数据。

flyway的最佳常规做法是仅具有ddl更改类型迁移脚本,而没有数据插入/更新脚本?

flyway
2个回答
0
投票

最好的情况是,将其添加为迁移,并在将来通过迁移对其进行更改。包括生产。如果可以通过其他方式在实际环境中更改数据,则事情可能会更加复杂。在这种情况下,我个人更希望使用一个(共享的)测试夹具来插入样本数据。


0
投票

考虑在afterMigrate回调中的IF语句后面添加参考数据:

http://flywaydb.org/documentation/callbacks.html

© www.soinside.com 2019 - 2024. All rights reserved.