首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >天桥与现有系统的整合

天桥与现有系统的整合
EN

Stack Overflow用户
提问于 2013-03-14 15:28:16
回答 1查看 1.3K关注 0票数 2

我们正在考虑将天桥集成到我们的系统中,因为它似乎是高效管理数据库迁移的一个很好的工具。

不过,我不太清楚如何进行:

我们有三个不同的数据库

  1. 生产环境(MySQL)
  2. 测试环境(MySQL)
  3. 单元测试(内存中的H2)

它们都包含不同的数据(不同的用户等等)。数据库之间没有公共数据(在天桥页面上--这称为引用数据),只有结构应该保持不变。

从网站上看,我的理解是:

  1. 我们必须从生产环境中提取模式版本,并将其保存在像V1__BASE_version.sql这样的文件中。我会这样做,例如: mysqldump -d -u用户名-p密码-h主机名dbname
  2. 我们确保ddl与测试环境的ddl匹配,方法是获得结构的转储,并将其与生产系统中的结构进行比较(从diff开始,然后在不清楚的地方手动处理)。在不太可能发现任何差异的情况下,我们可以通过更改db结构进行测试或活动来消除它们(这取决于什么更有意义)。
  3. 我们使用首页描述的初始版本的数据初始化所有数据库。对于不同的数据库,我使用不同的-Durl=、-Dusername=和-Dpassword=参数。 mvn天桥:init -Dflyway.initVersion=1 -Dflyway.initDescription="Base“
  4. 将我们的弹簧设置配置为拾取天桥(如主页中所述)。这确保迁移是自动应用的,并且数据库与应用程序处于一致状态。

这样做对吗?我忘记了什么重要的步骤吗?

关于将测试数据添加到内存数据库,我还有一个问题:

插入单元测试数据的正确位置在哪里?即使我使用spring设置了天桥并使hibernate依赖于它

代码语言:javascript
运行
复制
<bean id="sessionFactory" class="..." depends-on="flyway">
...
</bean>

数据源将在此之前创建,目前是我们添加模式和测试数据的地方。如果我们在创建数据源时仍然添加示例数据,那么如果我没有弄错的话,模式将不是正确的。

我们如何使用测试数据与飞道使用内存数据库?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-14 17:28:16

您可以配置包含测试数据脚本的额外位置。然后,应该将其配置为只包含在单元测试中。

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

https://stackoverflow.com/questions/15413429

复制
相关文章

相似问题

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