gpt4 book ai didi

mysql - 使用sequelize的sequelize-自动关系问题

转载 作者:行者123 更新时间:2023-11-29 11:09:53 25 4
gpt4 key购买 nike

我正在使用sequelize-auto从数据库创建模型。但我无法使用包含方法来建立关系。我收到以下错误

错误:student_details_tbl (studentDetails) 未与 user_tbl 关联!

这是我的模型和数据库连接。

数据库连接

var config      =   require('./config'); 
var Sequelize = require('sequelize');

var db = new Sequelize(config.dbConn.database, config.dbConn.user, config.dbConn.password,{
dialect : config.dbConn.dialect,
host : config.dbConn.host,
port : config.dbConn.port,
pool : config.dbConn.pool,
define : {
timestamps: false
}
});

db.sync();


db.Sequelize = Sequelize;

module.exports = db;

用户表:

module.exports = function(sequelize, DataTypes) {
return sequelize.define('user_tbl', {
id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
firstName: {
type: DataTypes.STRING,
allowNull: true
},
lastName: {
type: DataTypes.STRING,
allowNull: true
},
loginId: {
type: DataTypes.STRING,
allowNull: true
},
password: {
type: DataTypes.STRING,
allowNull: true
},
created: {
type: DataTypes.DATE,
allowNull: true,
defaultValue: sequelize.literal('CURRENT_TIMESTAMP')
},
modified: {
type: DataTypes.DATE,
allowNull: true,
defaultValue: sequelize.literal('CURRENT_TIMESTAMP')
}
}, {
tableName: 'user_tbl'
});
};

学生详细信息:

module.exports = function(sequelize, DataTypes) {
return sequelize.define('student_details_tbl', {
id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
userId: {
type: DataTypes.INTEGER(11),
allowNull: true,
references: {
model: 'user_tbl',
key: 'id'
}
},
barcode: {
type: DataTypes.INTEGER(13),
allowNull: false
},
rollNumber: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: ''
},
created: {
type: DataTypes.DATE,
allowNull: true,
defaultValue: sequelize.literal('CURRENT_TIMESTAMP')
},
modified: {
type: DataTypes.DATE,
allowNull: true,
defaultValue: sequelize.literal('CURRENT_TIMESTAMP')
}
}, {
tableName: 'student_details_tbl'
});
};

最佳答案

“有时您可能想要引用另一个表,而不添加任何约束或关联。在这种情况下,您可以手动将引用属性添加到架构定义中,并标记它们之间的关系。”。

因此,使用引用属性,您将不会在数据库中创建模型关系。您应该在类方法中使用关联,例如 HasOne、BelongsTo ...

http://docs.sequelizejs.com/en/latest/docs/associations/

关于mysql - 使用sequelize的sequelize-自动关系问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com