我错过了什么?任何帮助表示赞赏。谢谢
设施迁移文件
await queryInterface.createTable("facility", {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER,
},
name: {
allowNull: false,
type: Sequelize.STRING(256),
},
address: {
allowNull: false,
type: Sequelize.STRING(256),
},
region_id: {
type: Sequelize.BIGINT,
references: {
model: "region",
key: "id",
},
},
}
设施模型文件
sequelize.define(
"facility",
{
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER,
},
name: {
allowNull: false,
type: DataTypes.STRING(256),
},
address: {
allowNull: false,
type: DataTypes.STRING(256),
},
region_id: {
type: DataTypes.BIGINT,
}
})
Region.belongsTo(Facility, {
foreignKey: "region_id",
});
Facility.hasOne(Region, {
foreignKey: "region_id",
});
Executing (default): SELECT "facility"."id", "facility"."name", "facility"."address", "facility"."region_id", "region"."id" AS "region.id", "region"."name" AS "region.name", "region"."region_id" AS "region.region_id" FROM "facility" AS "facility" LEFT OUTER JOIN "region" AS "region" ON "facility"."id" = "region"."region_id";
column region.region_id does not exist error
我尝试了这个关联,它有效,但我不知道它是如何工作的。
Facility.belongsTo(Region, {
foreignKey: "region_id",
});
Region.hasOne(Facility, {
foreignKey: "region_id",
});
Executing (default): SELECT "facility"."id", "facility"."name", "facility"."address", "facility"."region_id", "region"."id" AS "region.id", "region"."name" AS "region.name", "region"."region_id" AS "region.region_id" FROM "facility" AS "facility" LEFT OUTER JOIN "region" AS "region" ON "facility"."region_id" = "region"."id";
鉴于您的表之间的关系,您的选择查询需要像这样更改 需要改变
ON "facility"."id" = "region"."region_id";
到 ON“设施”。“region_id”=“区域”。“id”