如何解决如何在sequelize中设置外键
我在模型中创建外键时遇到问题。我使用 sequelize-cli 创建模型和迁移。下面是我的代码.. 我需要在 End_user 和 End_user_authorization 模型之间建立关系。但我在 Dbeaver 中看不到关系。我做错了什么。请指导。
模型/End_user
static associate(models) {
// define association here
End_user.hasOne(models.End_user_authorization,{
foreignKey : 'userId',as:'End_user_authorization',onDelete:'CASCADE'
});
}
};
End_user.init({
firstName: DataTypes.STRING,middleName: DataTypes.STRING,lastName: DataTypes.STRING,nickName: DataTypes.STRING,email: DataTypes.STRING,mobileNumber: DataTypes.INTEGER,bloodGroup: DataTypes.STRING,fatherName: DataTypes.STRING,motherName: DataTypes.STRING,fingerPrints: DataTypes.BOOLEAN,bForm: DataTypes.INTEGER
},{
sequelize,modelName: 'End_user',});
return End_user;
};
型号/End_user_authorization
static associate(models) {
// define association here
End_user_authorization.belongsTo(models.End_user,{
foreignKey : 'userId',onDelete : 'CASCADE'
});
}
};
End_user_authorization.init({
userId: DataTypes.INTEGER,authCode: DataTypes.STRING,regdeviceid: DataTypes.INTEGER,regDeviceName: DataTypes.STRING,expiry: DataTypes.INTEGER,ipAddress: DataTypes.STRING
},{
sequelize,modelName: 'End_user_authorization',});
return End_user_authorization;
};
迁移/End_user_authorization
忽略迁移文件中的 ipAddress 部分
'use strict';
module.exports = {
up: async (queryInterface,Sequelize) => {
await queryInterface.createTable('End_user_authorizations',{
id: {
allowNull: false,autoIncrement: true,primaryKey: true,type: Sequelize.INTEGER
},userId: {
type: Sequelize.INTEGER,onDelete: 'CASCADE',references: {
model: 'End_user',key: 'id',}
},authCode: {
type: Sequelize.STRING
},regdeviceid: {
type: Sequelize.INTEGER
},regDeviceName: {
type: Sequelize.STRING
},expiry: {
type: Sequelize.INTEGER
},ipAddress: {
type: Sequelize.STRING,onDelete:'CASCADE',references:{
model:'AllowedIp',key:'ipAddress',}
},createdAt: {
allowNull: false,type: Sequelize.DATE
},updatedAt: {
allowNull: false,type: Sequelize.DATE
}
});
},down: async (queryInterface,Sequelize) => {
await queryInterface.dropTable('End_user_authorizations');
}
};
解决方法
我已经解决了这个问题。我正在分享,因为它可能对其他人有帮助。只要确保首先创建一个模型,其 Pk 将用于与其他表建立关系......假设你有两个为用户和帖子建模。 您希望在帖子模型中保留 User_id。请务必先创建用户模型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。