Продолжить на УДАЛЕННЫЙ КАСКАД - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть два стола, дом, арендатор. У дома есть много арендаторов, у арендатора есть только один дом. (дом <- >> арендатор).

В Арендаторе:

  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.

...