在 Spring Boot 应用程序中动态创建模式

Posted

技术标签:

【中文标题】在 Spring Boot 应用程序中动态创建模式【英文标题】:Dynamically create schema in Spring boot application 【发布时间】:2019-11-22 13:32:45 【问题描述】:

我有一个使用 JPA 和 Hibernate 的 Spring 引导应用程序。它已经连接到所有事务的主数据源。

现在手头的任务是我需要在不同的数据库中动态创建数据库模式。例如,

对于项目 1,在数据库 X 中创建模式 1 对于项目 2,在数据库 X 中创建模式 2

以后,这些数据库将被其他人在外部使用。我正在寻找完成这项工作的最佳方法。

【问题讨论】:

您可以将gradleflyway 一起使用,然后创建一个任务以创建数据库架构。 你也可以试试this answer 你的问题有点抽象,你想连接2个数据源?当您说项目 1 和 2 是主要来源中的那些应用程序或表时? 【参考方案1】:

如果在 Spring Boot 项目中定义多个数据源,您必须在配置中声明关联的 bean。使用 spring.jpa.hibernate.ddl-auto=create 它将自动在正确的数据库中创建模式 as answered here

【讨论】:

以上是关于在 Spring Boot 应用程序中动态创建模式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring (Boot) 应用程序的代码中动态添加 bean?

Spring Boot 工厂 Bean 创建顺序

Spring Boot 应用程序不会为 JPA @Table 注释创建模式

Spring Boot:如何使用多个模式并在运行时动态选择使用哪一个

Spring Boot:实现MyBatis动态创建表

在 Spring Boot 中创建动态服务