Unhandled rejection SequelizeForeignKeyConstraintError: insert or update on table
Unhandled rejection SequelizeForeignKeyConstraintError: insert or update on table
我使用 sequelize-cli 进行迁移:
我的迁移代码:
module.exports = {
up(queryInterface, Sequelize) {
queryInterface.showAllSchemas({
options: {},
}).then((data) => {
data.forEach(schema => queryInterface.addColumn({
tableName: 'visitors',
schema, // dynamic schemas coming from loop
}, 'purposeId', {
type: Sequelize.INTEGER,
references: {
model: 'purposes', // name of Target model
key: 'id', // key in Target model that we're referencing
},
}));
});
},
};
我有多个架构,在其中我有 table 称为 'visitors',其中 table 我想添加来自 [=29= 的名为 'purposeId' 的引用] table.
迁移成功完成,我的 'visitors' table.
中也有一个 purposeId 列
但是如果我在 'visitors' table 中进行 crud 操作,我会得到这个错误:
未处理的拒绝 SequelizeForeignKeyConstraintError:在 table "visitors" 上插入或更新违反了外键约束 "visitors_purposeId_fkey"
注意:我使用的是 postgres。
实际上我使用 constraints:false 解决了这个问题。
我从迁移中删除了该引用。
我的迁移代码:
module.exports = {
up(queryInterface, Sequelize) {
queryInterface.showAllSchemas({
options: {},
}).then((data) => {
data.forEach(schema => queryInterface.addColumn({
tableName: 'visitors',
schema,
}, 'purposeId', {
type: Sequelize.INTEGER,
}));
});
},
down(queryInterface, Sequelize) {
queryInterface.showAllSchemas({
options: {},
}).then((data) => {
data.forEach(schema => queryInterface.removeColumn({
tableName: 'visitors',
schema,
}, 'purposeId', {
type: Sequelize.INTEGER,
}));
});
},
};
在我的 Sequelize 模型中:
Visitor.belongsTo(Purpose, { constraints: false });
我使用 sequelize-cli 进行迁移:
我的迁移代码:
module.exports = {
up(queryInterface, Sequelize) {
queryInterface.showAllSchemas({
options: {},
}).then((data) => {
data.forEach(schema => queryInterface.addColumn({
tableName: 'visitors',
schema, // dynamic schemas coming from loop
}, 'purposeId', {
type: Sequelize.INTEGER,
references: {
model: 'purposes', // name of Target model
key: 'id', // key in Target model that we're referencing
},
}));
});
},
};
我有多个架构,在其中我有 table 称为 'visitors',其中 table 我想添加来自 [=29= 的名为 'purposeId' 的引用] table.
迁移成功完成,我的 'visitors' table.
中也有一个 purposeId 列但是如果我在 'visitors' table 中进行 crud 操作,我会得到这个错误:
未处理的拒绝 SequelizeForeignKeyConstraintError:在 table "visitors" 上插入或更新违反了外键约束 "visitors_purposeId_fkey"
注意:我使用的是 postgres。
实际上我使用 constraints:false 解决了这个问题。
我从迁移中删除了该引用。
我的迁移代码:
module.exports = {
up(queryInterface, Sequelize) {
queryInterface.showAllSchemas({
options: {},
}).then((data) => {
data.forEach(schema => queryInterface.addColumn({
tableName: 'visitors',
schema,
}, 'purposeId', {
type: Sequelize.INTEGER,
}));
});
},
down(queryInterface, Sequelize) {
queryInterface.showAllSchemas({
options: {},
}).then((data) => {
data.forEach(schema => queryInterface.removeColumn({
tableName: 'visitors',
schema,
}, 'purposeId', {
type: Sequelize.INTEGER,
}));
});
},
};
在我的 Sequelize 模型中:
Visitor.belongsTo(Purpose, { constraints: false });