首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >几个数据库的FlyWay配置

几个数据库的FlyWay配置
EN

Stack Overflow用户
提问于 2022-11-18 08:05:54
回答 1查看 42关注 0票数 0

我正在将FlyWay集成到该项目中。除了对工作数据库的迁移之外,我还想在gitlab管道作业期间为集成测试设置数据库(仅用于某些人推送分支的情况)。

项目上使用的是MariaDB,所以我现在正在考虑这样的方法:添加H2数据库,为其创建带有测试夹具的迁移。因此,对于prod/暂存/dev,将使用MariadDb及其迁移,但在gitlab管道上的一个作业中,临时使用的是带有测试夹具的H2

所以我对此有几个问题:

  • 这是一种方法,还是可以做得更简单?
  • FlyWay能否以这样的方式配置,以处理不同的数据库?首先连接到H@,然后应用测试迁移,然后在测试步骤之后切换到Maria,并在其上应用基本迁移。
  • 我在文档中发现了如何依赖占位符来运行迁移。这是一种使FlyWay区分prod迁移和测试迁移的单一方法吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-18 09:24:09

这是一种方法,还是可以做得更简单?

最简单的解决方案是将gitlab中的CI作业配置为使用MariaDB服务。这将保证您的测试将在与生产代码相同的环境中执行。(请看这里:https://docs.gitlab.com/ee/ci/services/mysql.html)

另一种替代方法是配置测试容器(https://www.testcontainers.org/)。它允许您在测试设置期间启动空db。然而,根据我的经验,有时会有问题,因为它取决于码头,所以你在"DIND模式“工作。

FlyWay能否以这样的方式配置,以处理不同的数据库?

您可以配置Flyway,根据您喜欢的任何东西(例如,数据库驱动程序)运行不同的迁移脚本集。然而,它需要一些手动配置和代码编写来处理它,如果在您的测试(或生产)中希望使用不同的数据库(例如,您希望测试代码是否与postgres和mariadb一起工作),则非常有用。

我在文档中发现了如何依赖占位符来运行迁移。

原则上,您应该有不同的测试和prod配置,这样就可以轻松地将其分离。不同的application.properties应该就足够了,但是您可以使用FlyWay环境。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74486602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档