Я пытаюсь создать один сиквелиз для каждой базы данных. Некоторые таблицы в DB1 имеют отношения с таблицами в DB2 и наоборот. Одним из отношений является DB1.Utilisateur.contenuProvenance_id => DB2.Contenu.id и DB2.Contenu.utilisateur_id => DB1.Utilisateur.id.
Вот модель Utilisateur:
@Table
export default class Utilisateur extends Model<Utilisateur> {
@API() @PrimaryKey @AutoIncrement @Column({ type: DataType.INTEGER })
public id!: number;
@Column({ type: DataType.STRING, allowNull: false })
public email!: string;
@Column({ type: DataType.STRING, allowNull: false })
public nom!: string;
@ForeignKey(() => Utilisateur)
@Column({ type: DataType.INTEGER, allowNull: true })
public parrain_id?: number;
@ForeignKey(() => Contenu)
@Column({ type: DataType.INTEGER, allowNull: true })
public contenuProvenance_id?: number;
}
(Да, я использую sequelize-typescript, чтобы объявить свои модели как классы Typescript)
И вот как создается мой экземпляр Sequelize:
let DBs = {};
for (const ZONE of zones)
DBs[ ZONE.name ] = new Sequelize(ZONE.serveur.bdd.nom, ZONE.serveur.bdd.login, ZONE.serveur.bdd.mdp, {
host: ZONE.serveur.bdd.hote,
dialect: "mariadb",
...
models: ZONE.modeles // Array of models
});
Проблема: когда первый экземпляр (DB1) создан, sequelize не находит таблицу Content и выдает мне эту ошибку:
Error: Contenu has not been defined
at Sequelize.model (project/node_modules/sequelize/lib/sequelize.js:443:13)
at Sequelize.model (project/node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize.js:29:26)
at project/node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize.js:51:46
at Array.forEach (<anonymous>)
at project/node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize.js:49:26
at Array.forEach (<anonymous>)
at Sequelize.associateModels (project/node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize.js:45:16)
at Sequelize.addModels (project/node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize.js:37:14)
at new Sequelize (project/node_modules/sequelize-typescript/dist/sequelize/sequelize/sequelize.js:19:22)
Можно ли создавать экземпляры sequelize один за другим, хотя между базами данных существуют отношения?
Должен ли я добавлять модели после того, как все экземпляры секвелирования созданы?
Спасибо за вашу помощь, ребята
Похожие: