【问题标题】:Place to put all association code in sequelize将所有关联代码放入 sequelize 的地方
【发布时间】:2019-08-15 05:39:52
【问题描述】:

目前我将所有模型关联都放在入口点 (index.js) 中。我有带有 belongsTo 关联的 BusinessTag 和 Tag 模型,但是当我使用“include”从 BusinessTag 获取标签时,它总是返回“Tag is not associated with Business Tag”。

当我在 findAll() 正上方移动函数内部的关联时,它会起作用。 我有另一个项目使用相同的方法(将所有关联放在入口点),但一切都很好。

//It's work
BusinessTag.belongsTo(Tag);

BusinessTag.findAll({include: [Tag]})

那么,发生了什么?我应该把我所有的关联代码和 sequelize 放在哪里?

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    请尝试按照给定的顺序。它对我有用。

    1. 定义数据模型
    2. 定义关系(关联)
    3. 请再次生成模型。 sequalize.sync({force:true}); 注意:这将删除您当前的所有数据和表格。

    首先在 index.js 中尝试这个代码流

    谢谢!

    【讨论】:

    • 感谢您的回答。我按顺序完成所有操作,不再生成模型。但它不能像往常一样工作。我有其他项目,但效果很好。
    • sequalize.sync({force:false}); 不想再生的可以试试这个。进一步检查文档。
    【解决方案2】:

    我得到了我的问题的解决方案。首先我没有使用迁移,我的应用程序创建表只依赖于sequelize.sync(),这就是问题所在。有时sequelize.sync 不按顺序生成表。因此,如果您希望关联工作,我建议始终使用数据库迁移。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多