【发布时间】:2018-11-09 14:28:55
【问题描述】:
我正在构建多租户应用程序,其中每个客户端都有单独的数据库。
sequelize中是否可以根据路由改变数据库连接?
我有两条路线
scale.com/ss94545
scale.com/mn94545
登录后,用户将被重定向到 scale.com/ss94545,以获取其特定站点的所有数据。
另一个 mn94545 站点使用单独的数据库,因此如果他们想获取所有数据,他们必须访问 scale.com/mn94545。
每个安装都有自己的数据库,所有数据库都有相同的架构。
是否可以根据访问的路由更改数据库连接?
这是我的基本静态续集数据连接:
const sequelize = new Sequelize('ss94545', 'root', 'root', {
host: '127.0.0.1',
port: 3306,
dialect: 'mysql',
logging: false,
});
【问题讨论】:
-
解决此问题的另一种方法是在服务器启动时创建两个 sequelize 对象。现在在您的路线中,您可以使用连接到正确数据库的 sequelize 对象。希望你没有很多数据库。在运行时连接到 db 成本很高,并且会减慢您的请求。
标签: mysql node.js sequelize.js multi-tenant saas