我们正在将 Flyway DB 用于一个长期项目,该项目目前有超过 100 个迁移。
在我们的自动化测试中,我们希望在运行测试之前重置数据库,以便我们从数据库中的已知状态开始,并测试迁移。
我们遇到的问题是运行超过 100 个迁移太慢。我们认为运行创建当前模式的单个脚本,而不是通过所有迁移来发展它,会更快。而且我们不需要从版本 n 升级到 n+1(对于任意 n)的能力,因为我们拥有的唯一生产数据库已经是最新的。
是否有任何方法可以用一个“快照”迁移来“替换”旧的迁移,只需一个脚本即可将数据库从版本 0 迁移到版本 100?我想我们可以删除直到最后一个的所有迁移(假设它是编号 100),并将迁移编号 100 替换为在一个脚本中创建整个数据库的迁移。还有其他想法吗?
我知道我们可以将数据库模式保留在测试中,并在运行它们之前删除数据,但这很困难,因为某些行(只有几行)就像在迁移期间插入的常量,并且只是清除所有内容会使数据库处于不一致的状态。
提前致谢!
最佳答案
您可以按照此处描述的流程来压缩现有迁移:http://flywaydb.org/documentation/existing.html
关于database-migration - 如何在自动化测试中处理数百个 FlywayDB 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30436910/