Наложить ограничение на удаление

#javascript #mysql #node.js #sequelize.js #sequelize-cli

#javascript #mysql #node.js #sequelize.js #продолжение-cli

Вопрос:

Я хотел бы добавить ограничение внутри моего файла миграции, например, когда я пытаюсь удалить строку, а внутри другой таблицы есть другая строка, которая ссылается на строку, которую я удаляю, она должна выдавать ошибку. Также будет несколько таблиц, которые будут связаны с таблицей.

 return queryInterface.createTable('status', {
  id: {
    allowNull: false,
    autoIncrement: true,
    primaryKey: true,
    type: Sequelize.INTEGER
  },
  name: {
    type: Sequelize.STRING,
    unique: true
  },
  slug: {
    type: Sequelize.STRING,
    unique: true
  },
  createdAt: {
    allowNull: false,
    type: Sequelize.DATE
  },
  updatedAt: {
    allowNull: false,
    type: Sequelize.DATE
  },
});
  

состояние таблицы:

идентификатор

локали таблиц: … id_status

пользователи таблицы … id_status

Комментарии:

1. Добавьте ограничение, используя внешние ключи.

2. @tadman есть примеры? Я вижу, что существует множество отношений, принадлежащих отношениям, нужно ли мне использовать их или что-то еще?

3. Стоит быстренько ознакомиться с документацией .

4. применимо ли это и к миграциям?

Ответ №1:

   id_status: {
    type: Sequelize.INTEGER,
    references: {
      model: 'status',
      key: 'id',
      onDelete: 'restrict'    
    }
  },
  

Ответ №2:

  id_status: {
    type: Sequelize.INTEGER,
    references: {
      model: 'status',
      key: 'id',
    },
onDelete: 'restrict'    
  },