【问题标题】:Flyway migration in Development and Production开发和生产中的 Flyway 迁移
【发布时间】:2014-03-31 09:50:54
【问题描述】:

我正在寻找一种在生产和开发中进行不同迁移的方法。

我想用 Maven 创建一个 Spring Web 应用程序。 在开发中,我想更新数据库模式和负载测试数据。 在生产中部署新版本的应用程序时,我只想更改架构而不加载测试数据。

我的第一个想法是保存架构更新并将语句插入不同的文件夹。

我想每个人都解决了这个问题并且可以帮助我,非常感谢。

【问题讨论】:

    标签: maven database-migration flyway


    【解决方案1】:

    基本上,您有两种选择:

    您可以在 flyway.locations 属性中为您的迁移使用不同的位置,即:

    用于测试

    flyway.locations=sql/structure,sql/test
    

    用于生产

    flyway.locations=sql/structure
    

    这样,您将测试数据包含在 sql/test 文件夹中。当然,您必须注意编号。

    第二个选项(我更喜欢的那个),是根本不在您的迁移中包含测试数据。

    相反,以您想要的任何方式创建您的测试数据,并为此数据创建一个 sql-dump,将其与迁移分开。

    如果您有一个包含原始测试数据的单独数据库(实例、架构等),这种方法效果最好,您可以在其中应用每个迁移作为构建过程的一部分。然后,此构建作业可以创建一个始终与当前迁移匹配的转储。

    在准备测试机器时,首先应用迁移,然后加载匹配转储的内容。

    我认为这比第一个版本干净得多,尤其是因为您的测试数据可以使用其他工具(您的应用程序)准备好,而无需手动编码。

    【讨论】:

    • ...不要在迁移中包含测试数据。我喜欢它。
    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 2021-07-22
    • 2015-07-07
    • 2012-03-22
    • 1970-01-01
    • 2018-03-04
    相关资源
    最近更新 更多