Javascript 续集:“;模型尚未定义”的;当跨多个数据库建立关系时

Javascript 续集:“;模型尚未定义”的;当跨多个数据库建立关系时,javascript,node.js,orm,sequelize.js,sequelize-typescript,Javascript,Node.js,Orm,Sequelize.js,Sequelize Typescript,我正在尝试实例化每个数据库的一个续集。DB1中的一些表与DB2中的表有关系,反之亦然。其中一个关系是DB1.usilisateur.contenuprogence_id=>DB2.Contenu.id和DB2.Contenu.usilisateur_id=>DB1.usilisateur.id 以下是Usilizateur模型: @Table export default class Utilisateur extends Model<Utilisateur> { @API

我正在尝试实例化每个数据库的一个续集。DB1中的一些表与DB2中的表有关系,反之亦然。其中一个关系是DB1.usilisateur.contenuprogence_id=>DB2.Contenu.id和DB2.Contenu.usilisateur_id=>DB1.usilisateur.id

以下是Usilizateur模型:

@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;
}
问题:创建第一个实例(DB1)时,sequelize找不到内容表,并给出以下错误:

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)
错误:尚未定义Contenu
在Sequelize.model(project/node_modules/Sequelize/lib/Sequelize.js:443:13)
在Sequelize.model(project/node_modules/Sequelize typescript/dist/Sequelize/Sequelize/Sequelize.js:29:26)
在project/node_modules/sequelize typescript/dist/sequelize/sequelize/sequelize.js:51:46
at Array.forEach(

Sequalize不支持多个迁移文件夹,也不区分您为各个型号设置的方法。您必须非常具体。我无法判断您是否来自您提供的

看看这个问题是否有帮助: 您必须围绕默认路径配置一种方式

这也可能提供一些见解:


你可以在这里阅读Sequalize关于迁移的详细说明:

嗨,我遇到了完全相同的问题,你能解决吗?嗨,因为Sequelize在很多方面都不能满足我的需要,所以我最终编写了自己的orm。
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)