У меня есть два стола, дом, арендатор. У дома есть много арендаторов, у арендатора есть только один дом. (дом <- >> арендатор).
В Арендаторе:
Renter.associate = function (models) {
models.renter.belongsTo(models.house, { foreignKey: { name: 'house_id', allowNull: false } } );
};
Или:
Renter.associate = function (models) {
models.renter.belongsTo(models.house, { foreignKey: { name: 'house_id', allowNull: false, onDelete:'CASCADE' } } );
};
Оба способа терпят неудачу, как объяснено ниже.
В доме:
House.associate = function (models) {
models.house.hasMany(models.renter, { foreignKey: 'house_id'});
}
Я также пытался опустить ассоциацию hasMany и указывать только часть ownTo при аренде ...
при удалении хоста:
await house1.destroy();
Я получаю следующую ошибку:
SequelizeForeignKeyConstraintError: update or delete on table "house" violates foreign key constraint "renter_house_id_fkey" on table "renter"
Когда я просматриваю журналы БД, во время создания таблицы арендатора это выглядит так:
"house_id" INTEGER NOT NULL REFERENCES "house" ("id") ON DELETE NO ACTION ON UPDATE CASCADE
Мне нужно удалить БД все арендаторы, когда я удаляю дом через ограничение БД НА УДАЛИТЬ КАСКАД. Как я могу это исправить? Что касается таблицы def, я вижу, что ON DELETE NO ACTION
является проблемой, и я не уверен, как получить продолжение, чтобы поставить CASCADE not NO ACTION.