Grails:在运行时更改dataSource url以实现多租户数据库分离

时间:2014-03-11 09:44:43

标签: mysql grails gorm multi-tenant

我正在使用Grails构建一个多租户应用程序,我想保留单独的数据库。 我需要在运行时动态更改URL以将GORM指向不同的数据库。

我有一个前端充当平衡器,将请求分发给后端主机群集。每个后端主机运行一个Grails 2.3.5实例和一个带有几个数据库的mysql-server(每个租户一个)。我想动态更改dataSource,以便GORM可以访问正确数据库中的域实体。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

您可以在DataSource.groovy中配置多个数据源,请查看blog

在您的域中:添加您的域可以与之交互的数据源,例如,

static mapping = {
    datasources(['dataSource1', 'dataSource2'])
}
所有数据源的

或“ALL”,例如,

static mapping = {
    datasource 'ALL'
}

然后您可以使用要获取/设置数据的数据源名称进行查询,例如,

def userClass = User.class
User user = userClass.dataSource1.findByName('username')

参考: - multipleDatasourcesQuerying on multiple datasource in grails