Как использовать множественные схемы MySQL на findAll в sequelize? - PullRequest
0 голосов
/ 02 мая 2019

Я не могу поместить несколько экземпляров sequelize в один запрос с помощью функции findAll ()

Я хочу иметь возможность выбирать информацию, которая находится в 2 отдельных базах данных. Для этого я создал 2 экземпляра sequelize, по одному для каждой базы данных. Затем я связал свои модели с этими экземплярами.

К сожалению, если мы назовем базу A с моделью «modelA» и базу B с моделью «modelB», например. Когда я хочу выделить информацию в модели 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`;

Я ожидаю что-то вроде: A. modelA и B. modelB в операторе SQL.

Я также пытался настроить опцию «схема» на моделях, но с этой я получаю ошибку: //"SequelizeDatabaseError: Table 'A.B.modelB' doesn't exist"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...