我有一个名为std::unique_ptr
的表,该表具有一个称为documents
的列,该列是对另一个parentId
记录的引用。
使用我当前的代码,我得到了错误
document
文档迁移
insert or update on table "documents" violates foreign key constraint "documents_parentId_fkey"
文档模型
'use strict'
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('documents', {
id: {
allowNull: false,
primaryKey: true,
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4
},
parentId: {
allowNull: true,
type: Sequelize.UUID,
references: {
model: 'documents',
key: 'id'
}
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
lastUpdatedAt: {
allowNull: false,
type: Sequelize.DATE
},
lastUpdatedBy: {
allowNull: false,
type: Sequelize.UUID
}
})
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('documents')
}
}
您如何正确地关联同一张桌子?
答案 0 :(得分:0)
I have a self referencing table configured with the constraints: false
setting.
MyModel.belongsTo(MyModel, {
as: 'parentMyModel',
foreignKey: 'parentId',
constraints: false,
});
答案 1 :(得分:0)
看起来约束是有效的(也是很好的约束)。我提交的有效载荷有一个父uuid,该uuid实际上未引用任何具有该ID的文档。
所以我的代码是正确的,我提交的数据是错误的。