场景:我有两个数据库。
第一个数据库是用于测试的空白数据库。我基本上运行flyway:使用完整模式迁移和构建数据库,并针对该空白数据库运行我的集成测试。在运行测试之前插入集成测试所需的任何数据。最后,通过使用flyway来清理数据库:clean以确保通过的下一个构建有一个干净的数据库可以使用。
第二个数据库中包含数据。
问题:构建在集成阶段失败,因为我的迁移脚本依赖于数据库1没有的数据。基本上我是根据数据库中存在的某些数据插入数据。
flyway的最佳常见做法是只有ddl更改类型迁移脚本而没有数据插入/更新脚本吗?
答案 0 :(得分:0)
在最好的情况下,您将其添加为迁移,并在将来通过迁移进行更改。包括生产。如果可以通过其他方式在真实环境中更改数据,则事情可能会更复杂。在这种情况下,我个人更喜欢使用(共享)测试夹具来插入样本数据。
答案 1 :(得分:0)
考虑在afterMigrate回调中将参考数据添加到IF语句后面: