考虑到这个ERD,我试图找出为什么没有在上创建外键
documentChildren
和
documentAttribute
因为它们都有一个列,应该是FK to
document
.
我的续集模型都运作良好,但我很好奇,我做错了什么,在真正的FK的没有被生成。
文档迁移:
'use strict'
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('documents', {
id: {
allowNull: false,
primaryKey: true,
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4
},
...
})
}
...
}
'use strict'
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('documentChildren', {
id: {
allowNull: false,
primaryKey: true,
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4
},
documentId: {
allowNull: false,
type: Sequelize.UUID,
references: {
model: 'documents',
key: 'id'
}
},
...
})
}
...
}
文档属性迁移:
'use strict'
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('documentAttributes', {
id: {
allowNull: false,
primaryKey: true,
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4
},
documentId: {
allowNull: false,
type: Sequelize.UUID,
references: {
model: 'documents',
key: 'id'
}
},
...
})
}
...
}
文档模型关联:
document.associate = function (models) {
document.hasMany(models.documentAttribute)
document.hasMany(models.documentChildren)
}