【发布时间】:2019-07-12 09:01:39
【问题描述】:
我正在尝试使用 db:migrate 函数迁移数据库,但是我打印了错误:
错误:无法读取未定义的“替换”属性
我已经在 GitHub 上针对此错误参考了其他解决方案,但没有一个解决问题。我正在使用 sequelize-cli 执行迁移。
这是我的模型:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('Containers', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
name: {
type: Sequelize.STRING
},
userId: {
type: Sequelize.INTEGER,
references: "Users",
refereceKey: "id",
onUpdate: "cascade",
onDelete: "cascade",
},
type: {
type: Sequelize.STRING
},
detail: {
type: Sequelize.INTEGER
},
checkin: {
type: Sequelize.DATE
},
checkout: {
type: Sequelize.DATE
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('Containers');
}
};
我试图通过删除它来执行其他模型,但似乎没有任何效果。请帮帮我!
更新
我发现这是由于我试图添加的关系造成的,所以我在一个单独的迁移中移动了所有帖子的所有关系:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return [
queryInterface.addColumn("Containers", "userId", {
type: Sequelize.INTEGER,
references: "Users",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade"
}),
queryInterface.addColumn("Containers", "parentContainer", {
type: Sequelize.INTEGER,
references: "Containers",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade"
}),
queryInterface.addColumn("Entities", "containerId", {
type: Sequelize.INTEGER,
references: "Containers",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade",
}),
queryInterface.addColumn("Posts", "userId", {
type: Sequelize.INTEGER,
references: "Users",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade"
}),
queryInterface.addColumn("Posts", "containerId", {
type: Sequelize.INTEGER,
references: "Containers",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade",
nullable: true
}),
queryInterface.addColumn("Votes", "userId", {
type: Sequelize.INTEGER,
references: "Users",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade"
}),
queryInterface.addColumn("Votes", "postId", {
type: Sequelize.INTEGER,
references: "Posts",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade"
}),
queryInterface.addColumn("Comments", "userId", {
type: Sequelize.INTEGER,
references: "Users",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade"
}),
queryInterface.addColumn("Comments", "postId", {
type: Sequelize.INTEGER,
references: "Posts",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade"
}),
queryInterface.addColumn("Comments", "commentId", {
type: Sequelize.INTEGER,
references: "Comments",
referenceKey: "id",
onUpdate: "cascade",
onDelete: "cascade"
}),
]
},
down: (queryInterface, Sequelize) => {
}
};
现在,所有表都已创建,但此迁移仍然存在错误。
【问题讨论】:
标签: node.js foreign-keys sequelize.js associations sequelize-cli