msgstr "перевод элемента не связан с элементом!" Ошибка Sequelize - PullRequest
0 голосов
/ 06 ноября 2018

Я выполняю простой запрос к двум таблицам, которые должны быть связаны, но я получаю следующее сообщение:

item_translation не связан с item!

В основном item_translation должен принадлежать item. Согласно документам , я все сделал правильно. Вот модели:

ItemTranslation модель:

module.exports = function () {
  return function (app) {
    /** @type {Sequelize.Sequelize} */
    const sequelize = app.get('sequelize')

    const ItemTranslation = sequelize.define('item_translation', {
      _id: {
        type: Sequelize.INTEGER,
        allowNull: false,
        primaryKey: true,
        autoIncrement: true
      },
      sourceId: {
        type: Sequelize.STRING,
        allowNull: false,
        references: {
          model: 'item',
          key: '_id'
        },
        onDelete: 'cascade',
        onUpdate: 'cascade'
      },
      text: {
        type: Sequelize.STRING,
        allowNull: false
      }
    }, {
      freezeTableName: true
    })

    ItemTranslation.associate = function () {
      ItemTranslation.belongsTo(sequelize.models.item)
    }
  }
}

Модель товара:

module.exports = function () {
  return function (app) {
    /** @type {Sequelize.Sequelize} */
    const sequelize = app.get('sequelize')

    sequelize.define('item', {
      _id: {
        type: Sequelize.INTEGER,
        allowNull: false,
        primaryKey: true,
        autoIncrement: true
      },
      text: {
        type: Sequelize.TEXT,
        allowNull: true
      }
    }, {
      freezeTableName: true
    })
  }
}

Я что-то пропустил?

1 Ответ

0 голосов
/ 07 ноября 2018

Я не уверен, но попробуйте это. Я всегда явно определяю внешний ключ. Иногда это так.

ItemTranslation.belongsTo(sequelize.models.item,{foreignKey:'sourceId'})



Item.associate = function () {
      Item.hasMany(sequelize.models.ItemTranslation,{foreignKey:'sourceId'})
    }
...