【问题标题】:Struggling to switch between databases at runtime with Spring boot努力在运行时使用 Spring Boot 在数据库之间切换
【发布时间】:2022-01-08 02:23:47
【问题描述】:

我正在尝试更改运行时使用的数据库(例如从 H2 到 MySQL 并返回)。是否也可以同时使用它们(意味着无论何时保存存储库(使用看似正确的术语,或至少是约定),都保存在两个数据库中的任何数据)?

我尝试了很多不同的东西,但我对 Spring Boot 的了解非常有限。

我的尝试都围绕着尝试将 spring.profiles.active=h2 更改为 spring.profiles.active=mysql ,反之亦然,就像在 application.properties 文件中一样,但在代码中。

我不一定要寻找与我一直在尝试的方法相似的方法。

有人可以帮我弄清楚如何做到这一点吗?

任何意见将不胜感激!

附: 值得一提的是,我正在使用的代码在这里 (https://github.com/spring-projects/spring-petclinic)。

【问题讨论】:

  • 为什么?由于这些是不同的数据库和不同的 SQL 方言,它们不会一对一翻译,所以只切换数据库是行不通的,你还需要重新配置 Hibernate,例如(不仅仅是方言,内存中的整个元数据,表示重新启动)。总而言之,你似乎在尝试一些你不应该做的事情。
  • 感谢您的回复。基本上,我这样做是因为我正在尝试学习如何执行实时数据库迁移(两个数据库可能以非常不同的方式存储数据)。您认为应该如何解决?编辑:例如,我正在考虑以某种方式连接到一个数据库,将数据存储在一个变量中,切换到另一个数据库,然后将该变量的数据保存到另一个数据库中。

标签: spring spring-boot spring-data-jpa spring-data


【解决方案1】:

我建议你检查 Spring Cloud 配置,它是在运行时配置你的应用程序的机制。 https://cloud.spring.io/spring-cloud-config/reference/html/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多