为什么在我的某些模型中,sequelize 不会为外键创建新列?但它确实为其他模型创建???这令人沮丧和奇怪。例如,在这个 User 模型中, sequelize 不会创建role_id
.
'use strict';
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
id: { type: DataTypes.BIGINT, allowNull: false, autoIncrement: true, unique: true, primaryKey: true },
first_name: DataTypes.STRING,
last_name: DataTypes.STRING
}, {});
User.associate = function(models) {
User.belongsTo(models.Role, { foreignKey: 'role_id' });
};
return User;
};
这是一个类似的问题:Sequelize not created model association columns BUT!它没有得到答复。
我在这上面花了几个小时,我做了以下所有事情:
- 彻底阅读:https : //sequelize.org/master/manual/assocs.html
- 实验,比如创建一个新的虚拟模型,名称为
NewUser
。有用!但又不是User
名字。 - 发布在 Sequelize 的 Slack 频道上。
在这个 Stackoverflow 问题之后,我将从他们的 Github 问题页面寻求帮助。
我想我可以只定义列role_id
而不是通过associate
函数添加它。