【问题标题】:Spring Boot Application add datasource at runtime?Spring Boot Application 在运行时添加数据源?
【发布时间】:2018-01-24 03:03:44
【问题描述】:

我正在做一个使用 Spring boot 、 Spring Data JPA 和 postgres 的项目。有一个无法解决的问题。

当我的应用程序启动时,数据库还没有准备好。它需要在运行时添加到应用程序。但我也想使用 JPA 初始化数据库。 就像spring.jpa.hibernate.ddl-auto:create-drop一样,不幸的是使用JPA初始化数据库会在应用启动时发生。

我的问题是如何延迟 spring 数据 jpa DDL 生成。现在我们无法在应用程序运行时添加数据源。

我在网上搜索了很长时间。但是没有用。 AbstractRoutingDataSource 可能不适合我们,因为我们在开始时没有数据源。 请帮助或尝试提供一些想法如何实现这一目标

提前致谢

【问题讨论】:

  • 你说的是生产吗?
  • @AmerQarabsa 对不起,我听不懂你的意思
  • 为什么要延迟创建数据库?
  • @AmerQarabsa 因为我们需要一个迷你项目。数据库需要在运行时添加。
  • @AmerQarabsa 迷你项目启动时数据库未准备就绪

标签: spring hibernate spring-mvc jpa spring-data-jpa


【解决方案1】:

AbstractRoutingDataSource 没有用,因为它需要预先配置的数据源。 只需检查this stackoverflow 问题,它显示了如何在运行时添加/删除数据源。虽然它不支持 hibernate 的延迟 ddl 创建,但您可以使用 schema.sql 在运行时数据源中创建数据库表,并使用 data.sql 插入一些常量。

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 2019-07-01
    • 2018-03-12
    • 2018-01-04
    • 2017-10-11
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 2019-02-23
    相关资源
    最近更新 更多