首页 > 解决方案 > 您可以在 Autoconfigured Spring Boot H2 测试数据库上设置兼容模式吗?

问题描述

有没有办法为 H2 数据库配置 H2 兼容模式,Spring Boot 可以自动配置以替换常规数据库而无需替换它?

有记录的方法可以禁用自动配置测试数据库替换: https ://stackoverflow.com/a/43557541/141042

我不介意做这样的事情,但大多数替代方案都有其他复杂性:

有没有更好的方法来做到这一点?我喜欢 Spring Boot 自动配置测试数据库的简单性,但现在我似乎必须强制它进入 MySQL 兼容模式才能继续使用我现有的迁移。

有没有:

  1. 当spring自动配置测试数据库而不禁用该机制时,一种配置h2兼容模式的方法?
  2. 一种为所有测试指定 jdbc url 的方法,而无需修改每个测试(例如包含配置文件)或维护两个应用程序属性文件(例如新application.propertiesin src/test/resources

标签: javaspringspring-booth2

解决方案


没有选项可以为 Spring Boot 在测试中替换的嵌入式数据源设置自定义 URL。我们提供了一种方法来指定您想要的连接类型,但不包括 URL 本身。我不知道我们可以添加它有多容易,但至少值得一看,我已经创建了问题 #19038

至于指定 URL,application.properties由于您提到的原因,您不应该在测试类路径中添加一个。您引用的 SO 线程已经有一个引用application-test.properties.


推荐阅读