flyway

时间:2015-12-02 16:15:51

标签: flyway

场景:我有两个数据库。

第一个数据库是用于测试的空白数据库。我基本上运行flyway:使用完整模式迁移和构建数据库,并针对该空白数据库运行我的集成测试。在运行测试之前插入集成测试所需的任何数据。最后,通过使用flyway来清理数据库:clean以确保通过的下一个构建有一个干净的数据库可以使用。

第二个数据库中包含数据。

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

flyway的最佳常见做法是只有ddl更改类型迁移脚本而没有数据插入/更新脚本吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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