【发布时间】:2020-09-10 08:19:23
【问题描述】:
我有一个使用 Spring Boot 开发的多租户应用程序。在主表中,我保存有关租户数据库的信息。我正在尝试创建一个服务,它从主表接收一行并为其创建数据库。在 Spring Boot 中是否有已知的方法可以做到这一点?我可以在 Internet 上找到的唯一信息是在应用程序启动时创建,这是不希望的。主租户表在主模式中,具有以下结构:
来自服务的方法如下:
public void createTenant(TenantDTO tenantDTO) {
tenantepository.save(new Tenant(tenantDTO));
MasterTenant masterTenant = new MasterTenant();
masterTenant.setDbName(tenantDTO.getTenantId());
masterTenant.setDriverClass("com.mysql.jdbc.Driver");
masterTenant.setTenantId(tenantDTO.getTenantId());
masterTenant.setPassword("password");
masterTenant.setStatus(EStatus.ACTIVE.name());
masterTenant.setUserName("root");
masterTenant.setUrl("jdbc:mysql://localhost:3306/"+tenantDTO.getTenantId());
DBContextHolder.setCurrentDb(masterTenant.getDbName());
masterTenantRepository.save(masterTenant);
multiTenantConnectionProvider.selectDataSource(masterTenant.getTenantId());
//create schema + create tables from existing entities or run a script of sql
}
我需要帮助找出创建模式和表的部分。
【问题讨论】:
标签: database spring-boot hibernate jpa multi-tenant