【发布时间】:2017-05-25 08:49:07
【问题描述】:
我们正在实施一个多租户应用程序(每个租户的数据库),并希望包括对新租户的动态配置而无需重新启动服务器。这是 Grails 3.2.9 / GORM 6。
其中包括在运行时创建一个数据源,而不是在应用程序启动时在application.yml 中进行配置。
根据the documentation (11.2.5. Adding Tenants at Runtime),存在用于在运行时添加租户的 ConnectionSources API,但是以这种方式创建的 ConnectionSource 似乎没有在 Spring 中正确注册(用于数据源、会话和事务管理器的 bean)并且 Grails 抱怨缺少bean 当我们尝试使用新的数据源时。
我们期望当我们使用 ConnectionSources API 为一个新的数据库创建连接源时,Grails 应该按照我们应用程序中的 GORM Domains 用所有的表来初始化它,执行 Bootstrap.groovy 等,就像它一样对于application.yml 中静态配置的源,这也不会发生。
所以我的问题是 ConnectionSources API 的目的是否与我们尝试使用它的目的不同,或者它还没有完成/测试。
【问题讨论】:
-
我有一个与您类似的问题,所以我很想看看您是否得到任何答复。我正在尝试为每个租户做一个模式。到目前为止,我可以成功地运行与数据库迁移运行的代码基本相同的代码,这使我能够为特定于模式的表和特定于默认模式的表保留单独的变更集。但是,当我尝试在特定模式中简单地创建域类时,会出现语法错误。没有太多关于这种数据库管理方法的信息,所以我很好奇你们提供了哪些解决方案。
-
目前没有收到任何回复。现在我们解决了如果不重新启动就无法配置租户的问题。
标签: spring grails grails-orm