我正在使用Spring Boot构建REST API,并希望实现多租户结构来处理数据。
我想要一个名为
我已经阅读了不同的教程,它们都在
工作流程如下(尽可能简单地解释):
1. 用户注册 2. 应用程序创建用户实体并将其保存到
然后有许多问题涉及自动创建数据库时如何填充数据库。但首先是基础问题:)
我的技术栈:POSTGRESQL,Spring Boot。
提前感谢您的帮助。
我想要一个名为
Main
的数据库,其中包含一个User
表,该表将包含有关用户的数据(用户名,密码等),并且具有一个database
字段,用于指定该用户被指派的数据库。每当用户注册时,将创建他们相应的数据库(这是我遇到困难的地方之一)。我已经阅读了不同的教程,它们都在
application.properties
文件中预定义了Datasource
。显然,这里并非如此,因为每个用户的数据库将会动态创建或者访问已经创建的数据库。工作流程如下(尽可能简单地解释):
1. 用户注册 2. 应用程序创建用户实体并将其保存到
Main
数据库,然后为用户创建相应的数据库。
3. 应用程序对每个调用进行身份验证,如果通过身份验证,则从用户的数据库中获取数据。然后有许多问题涉及自动创建数据库时如何填充数据库。但首先是基础问题:)
我的技术栈:POSTGRESQL,Spring Boot。
提前感谢您的帮助。
LocalContainerEntityManagerFactoryBean
,而不是使用application.properties文件来处理不同的数据源?(附注:我的方言是Postgres) 2)这很清楚,它只是一个检查用户是否已登录的类,如果是,则给我相应的数据库,否则返回与主数据库对应的字符串。 5)如何使用Spring boot和Postgresql“即时”创建数据库?没有像MySql中的?createIfExists=true这样的选项。 - Renis1235Statement stmt = null; stmt = connection.createStatement(); stmt.executeUpdate("CREATE DATABASE IF NOT EXISTS " + tenantId + " CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;");
并且我使用Liquibase进行模式管理。因此,我使用Liquibase方法在新创建的数据库中填充模式(表等)。 - Milind Barve