问题描述
如题,egg-Sequelize无外键关系时(使用reference创建),使用include不能够查询多表相关数据。还请各位大神指教
或使用association后,使用sync创建数据库时不产生外键也能绕过该问题。
问题出现的环境背景及自己尝试过哪些方法
- 感谢文章 相关API文档,关键词搜索(“没有约束的外键引用”)了解得知,使用reference可以避免创建外键关系,尝试使用app.sync生成库,发现无关系,项目重新运行,发现仍需要指向Model之间的关系链,
- 如果不使用reference改用association,运行时会创建数据库外键,已猝。。
相关代码
/app/model/user.js
...
User.associate = () =>{
User.hasMany(app.model.UserRole); // 使用reference,再使用这句话,就创建外键了,郁闷。。
}
...
你期待的结果是什么?实际看到的错误信息又是什么?
使用sync生成数据库不产生外键且能够查询时候能够include多model查询。
感谢感谢!
已解决,仔细查阅后发现所创建的外键是当删除和更新时发生联系,带着这个关键字去查英文原著api,发现有个constraints的属性,在创建hasOne/belongsTo等等关系的时候,在option将这个属性置false即可。