【发布时间】:2016-04-12 06:40:22
【问题描述】:
我在 /config/connections.js 文件中定义了 2 个连接:
monolithMysql: {
user: 'store_app',
database: 'store',
dialect: 'mysql',
options: {
dialect: 'mysql',
host: 'dockerhost',
port: 3306,
logging: console.log
}
},
postgres: {
user: 'user_app',
database: 'user_authentication',
dialect: 'postgres',
options: {
dialect: 'postgres',
host: 'dockerhost',
port: 8201,
logging: console.log
}
}
并且在不同的模型中我已经放置了属性connection,以便区分它们,如下:
module.exports = {
options: {
connection: 'monolithMysql', // or 'postgres' in other models.
...
在/config/models.js 中,我将monolithMysql 设置为默认连接。但这应该被模型中的connection 属性(如果指定)覆盖。 如果我注释掉或未在 /config/models.js 中指定 connection 属性,则 Sequelize 挂钩无法加载。
尽管如此,当尝试查询以postgres 作为连接的模型时,它仍然在 MySQL 数据库中查询它们,并且失败了...如果我将postgres 设置为默认连接,那么它将始终在该数据库中查询,不管不同模型的本地 connection 属性是什么。
有什么建议可以同时设置 2 个连接吗?
更新:发现它只初始化 1 个 Sequelize 实例 - 一个具有默认连接的实例,在 /config/models.js 中指定
【问题讨论】:
-
github.com/sequelize/sequelize/issues/263 也许这个对话可以帮到你。
-
我看到了这个并想尝试一下,但问题是到目前为止我只通过
sails-hook-sequelize和/config/connections.js设置Sequelize。而且我不知道要在哪里/哪个文件定义和调用new Sequelize,以便在 Sails 被解除之前调用 2 个连接。尝试使用/config/bootstrap.js,但没有按预期工作。
标签: node.js sails.js sequelize.js