gpt4 book ai didi

sequelize.js - Sequelize 不创建模型关联列

转载 作者:行者123 更新时间:2023-12-03 22:21:40 26 4
gpt4 key购买 nike

我对 Sequelize 何时为关联创建字段感到有些困惑。

我已经使用 sequelize-cli 创建了我的迁移。这生成了一个迁移和模型文件。然后在模型文件中我填充了我的关联。然后运行 ​​npx sequelize-cli db:migrate

这会创建表,但不会创建模型中定义的关联所需的外键。

例如:
迁移问题:

"use strict";
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable("questions", {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
category: {
type: Sequelize.INTEGER
},
question: {
type: Sequelize.STRING
},
createdAt: {
allowNull: false,
defaultValue: new Date(),
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
defaultValue: new Date(),
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable("questions");
}
};

模型问题:
"use strict";
module.exports = (sequelize, DataTypes) => {
const questions = sequelize.define(
"questions",
{
question: DataTypes.STRING,
weight: DateTypes.INTEGER
},
{}
);
questions.associate = function(models) {
// associations can be defined here
models.questions.hasOne(models.question_categories);
models.questions.hasMany(models.question_answers);
};
return questions;
};

enter image description here

最佳答案

您需要提供外键中使用的列。
这些线上的东西

  questions.associate = function(models) {
// associations can be defined here
models.questions.hasOne(models.question_categories, { foreignKey: 'question_id' });
models.questions.hasMany(models.question_answers, { foreignKey: 'question_id' });
};

这将在表 question_categories 中创建一个外键,指向表问题
question_categories.question_id -> questions.id

关于sequelize.js - Sequelize 不创建模型关联列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57351863/

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