繁体   English   中英

您可以在 Autoconfigured Spring Boot H2 测试数据库上设置兼容模式吗?

[英]Can you set the compatibility mode on the Autoconfigured Spring Boot H2 test DB?

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

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

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

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

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

有没有:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM