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