从Spring Boot应用程序以编程方式创建数据库

问题描述

我正在使用Spring Boot开发一个多租户应用程序。 在主表中,我保存有关租户数据库的信息。 我正在尝试创建一个服务,该服务从主表中接收一行并为其创建数据库。在Spring Boot中有已知的方法吗? 我可以在互联网上找到的唯一信息是在应用程序启动时创建的,这是不希望的。 先感谢您! 主租户表位于主模式中,并具有以下结构:

enter image description here

该服务的方法如下:

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 
}

我需要帮助来确定具有创建模式和表的零件。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...