首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sequelize:“模型尚未定义”时,跨多个数据库的关系

Sequelize:“模型尚未定义”时,跨多个数据库的关系
EN

Stack Overflow用户
提问于 2020-02-06 07:54:23
回答 1查看 2.8K关注 0票数 6

我正在尝试实例化每个数据库一个续集。DB1中的一些表与DB2中的表有关联,并与之相反。其中之一是DB1.Utilisateur.contenuProvenance_id => DB2.Contenu.id和DB2.Contenu.utilisateur_id => DB1.Utilisateur.id。

下面是使用者模型:

代码语言:javascript
复制
@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;
}

(是的,我正在使用后缀-类型记录来声明我的模型为类型记录类)

下面是如何创建我的后缀实例:

代码语言:javascript
复制
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)时,表并给出以下错误:

代码语言:javascript
复制
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)

虽然数据库之间有关系,但是否可以一个一个地创建后缀实例?

在创建了所有后缀实例之后,我应该添加模型吗?

谢谢你们的帮助

相关信息:

EN

回答 1

Stack Overflow用户

发布于 2021-04-08 02:38:53

Sequalize不支持多个迁移文件夹,也不支持为单个模型设置的方法。你必须说得很具体。我看不出你是从你提供的东西来的。

看看这个问题是否有帮助:Migrations in Sequelize in my own folder structure您必须配置一种绕过默认路径的方法。

这也可能提供一些见解:https://medium.com/unetiq/using-multiple-databases-with-nodejs-and-sequelize-59e0abcbbe6f

您可以在这里阅读有关Sequalize迁移的详细信息:https://sequelize.org/master/manual/migrations.html#the-sequelizerc-file

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60090082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档