如何在sequelize中的findAll上使用多个mysql模式?

时间:2019-05-02 12:40:39

标签: mysql sql database sequelize.js

我不能使用findAll()函数在同一个查询中放置多个sequelize实例

我希望能够选择2个单独数据库中的信息。为此,我创建了2个sequelize实例,每个数据库一个。然后,我将模型链接到这些实例。

不幸的是,例如,如果我们用模型“ modelA”命名一个基数A,而用模型“ modelB”命名一个基数B。当我想在同一查询中选择基础A的模型A中的信息并与基础B的模型B链接时,Sequelize告诉我表A.modelB不存在。

显然,他不能将模式名称正确地放在每个模型的前面。

//Instantiation of 2 Sequelize with the two different base names in the 'db' object
//Link models to the good instance of Sequelize
//Set up hasOne / hasMany on models

await db.A.modelA.findAll({
  include: [{
    model: db.B.modelB,
    as: 'modelB'
  }]
});

//"SequelizeDatabaseError: Table 'A.modelB' doesn't exist"

在原始SQL中:

SELECT * FROM `A`.`tableA` AS `tableA` INNER JOIN `B`.`tableB` AS `tableB` ON `tableA`.`id` = `tableB`.`id_table_A`;

我希望在SQL语句中输入类似AmodelABmodelB的内容。

我也尝试在模型上设置选项“ schema”,但是有了这个,我得到了错误: //"SequelizeDatabaseError: Table 'A.B.modelB' doesn't exist"

0 个答案:

没有答案