可以在自动配置的Spring Boot H2测试数据库上设置兼容模式吗?

有没有一种方法可以配置H2数据库的H2兼容模式,Spring Boot可以自动配置它来替换常规数据库而不仅仅是替换常规数据库?

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

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

  • 如果在测试类路径中添加application.properties,它将在测试运行期间替换主application.properties,因此您将不得不维护两个文件(例如https://github.com/spring-projects/spring-boot/issues/10271
  • 如果您为测试运行设置了配置文件,则必须确保所有需要测试数据库的测试都已用配置文件标记

是否有更好的方法?我喜欢Spring Boot自动配置的测试数据库的简单性,但是现在看来我不得不将其强制为MySQL兼容模式,以继续使用现有的迁移。

那么那里是

  1. 当spring自动配置测试数据库而不禁用该机制时,如何配置h2的兼容模式?
  2. 一种为所有测试指定jdbc url的方法,而无需修改每个测试(例如,包括一个配置文件)或维护两个应用程序属性文件(例如,application.properties中的新src/test/resources
  3. li>
felixwoo80 回答:可以在自动配置的Spring Boot H2测试数据库上设置兼容模式吗?

无法为Spring Boot在测试中替换的嵌入式数据源设置自定义URL。我们提供一种方法来指定所需的连接类型,但不包括URL本身。我不知道我们可以添加它多么容易,但是至少值得一看,我创建了issue #19038

关于指定URL,出于上述原因,您不应在测试类路径中添加application.properties。您已引用has an answer的SO线程引用了application-test.properties

本文链接:https://www.f2er.com/3106742.html

大家都在问