在Sequelizejs中使用不同的mysql用户

时间:2014-07-16 15:49:32

标签: javascript mysql node.js sequelize.js

SequelizeJs是否可以为多个连接定义模型。我的意思是我想用几个MySQL用户来查询我的数据库。

这是我想要的一个例子。让我们从连接定义

开始
var user1 = new Sequelize('database', 'user1', 'pwd1', {
    host: "my.server.tld",
    port: 12345
})

var user2 = new Sequelize('database', 'user2', 'pwd2', {
    host: "my.server.tld",
    port: 12345
})

但是现在如果我有一个动态数量的用户,我可以将每个连接存储在一个数组中

var user = [];
for(var myUser in myUsers) {
    user.push(
        new Sequelize('database', myUser.username, myUser.pwd, {
          host: "my.server.tld",
          port: 12345
        })
    )
}

那么,如果我想声明我的模型,我必须在每个连接上建立一个循环来为每个连接声明我的模型?

无法声明我的模型没有链接到我的连接,然后指定在查询数据库时使用哪个连接?

2 个答案:

答案 0 :(得分:0)

当您查询应该使用哪个连接时,无法告诉sequelize。但是,您不必为每个连接定义模型,您只需为每个连接导入它

// models/user.js
module.exports = function (sequelize, DataTypes) {
  return sequelize.define ...
}

然后,对于用户阵列中的每个连接,您可以执行connection.import('./models/user.js')并在某处存储该特定连接的模型版本,或使用connection.model(name)为每个特定连接获取模型你需要它的时间。 https://github.com/sequelize/sequelize/wiki/API-Reference-Sequelize#model

答案 1 :(得分:0)

在我的理解中,这可以帮助你,也许read-replication