【问题标题】:How to test flyway migration?如何测试航路迁移?
【发布时间】:2014-06-13 01:07:43
【问题描述】:

通常迁移脚本很简单,例如添加新列左右,如果部署了应用程序,则一切正常。但有时需要测试一些复杂的逻辑。推荐的方法是什么?

【问题讨论】:

    标签: java testing integration-testing flyway database-testing


    【解决方案1】:

    有一个单独的数据库用于测试。将其作为每个构建的一部分进行迁移并针对它运行测试。您还可以根据需要使用额外的测试数据填充它,方法是包含用于测试数据迁移的第二个位置。

    主要位置:

    • V1__Initial.sql
    • V2__More_changes.sql
    • V3__Complex_logic.sql

    测试数据位置:

    • V2.1__Test_data.sql

    然后,您可以在测试中调用 flyway.clean() 和 flyway.migrate(),然后断言测试数据是否已正确转换。

    【讨论】:

    • 我发现这种方法有两个问题:1)我们有所有测试的“全局”数据,而不是为特定测试准备独立数据 2)很快就会有 V4__whatever.sql 所以我的测试赢了不再有效。在迁移进行之前有什么方法可以运行测试吗?功能要求? :)
    • 您可以将 flyway.target 设置为 3,所以它只会迁移那么远。
    • 是的,我可以手动完成,但无法扩展。测试应该是自动的。几乎所有的测试都需要最新的数据库版本。只有迁移需要早期版本。我如何在 V1 上运行一些测试,在 V2 等上运行一些测试并在最新版本上休息?我不确定如何正确设置整个生产就绪流程
    • 谁说你应该手动做?使用多个数据库或多个模式。 Flyway 可以轻松地自动为您创建其他模式。
    猜你喜欢
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    相关资源
    最近更新 更多