【发布时间】:2015-06-30 23:03:19
【问题描述】:
我想在我的环回应用中实现多租户。现在,我正在尝试使用中间件重新定义我的数据源,以根据请求的域为每个请求指向我的 mongodb 服务器上的不同数据库。代码运行,但它似乎并没有真正改变数据源。相反,它总是使用我的 datasources.json 中定义的那个。
现在,这就是我正在做的事情。我所有的模型都引用了“my_db”,我想在我的 mongo 服务器上为每个租户创建一个数据库。
var dataSourceObj = {
my_db:{
url: process.env.MONGOLAB_URI,
connector: "mongodb",
name: "my_db",
database: tenant
}
}
Object.keys(dataSourceObj).forEach(function(dataSource) {
app.dataSources[dataSource].adapter.settings = dataSourceObj[dataSource];
app.dataSources[dataSource].adapter.clientConfig = dataSourceObj[dataSource];
app.dataSources[dataSource].settings = dataSourceObj[dataSource];
app.dataSources[dataSource].connector.settings = dataSourceObj[dataSource];
app.dataSources[dataSource].connector.clientConfig = dataSourceObj[dataSource];
});
有人有什么想法吗?这是一种愚蠢的多租户方式吗?
谢谢!
【问题讨论】:
-
上面代码中的
tenant是什么? -
您找到解决方案了吗?