Невозможно обновить (или сохранить) существующую строку с помощью Sequelize - PullRequest
0 голосов
/ 08 октября 2018

При попытке .update() или .save() строки я получаю эту ошибку:

Unhandled rejection Error: You attempted to save an instance with no primary key,
this is not allowed since it would result in a global update

Я испробовал все 4 способа, которыми документы используются в качестве примеров (с определением атрибутов и без них, я хочусохранить), ничего не получалось.Это мой актуальный код для обновления:

Sydney.databases.guilds.findOrCreate({
  attributes: ['guildLocale'],
    where: {
      guildID: _guild.id,
    },
    defaults: {
      guildID: _guild.id,
      guildLocale: 'en_US',
      guildPrefix: '?',
    },
  }).spread((guild, created) => {
    guild.update({guildLocale: args[1]})
      .then(() => console.log(7))
      .catch((e) => throw e);
  });

А это модель гильдии:

let model = sequelize.define('guild', {
  guildID: {
    field: 'guild_id',
    type: DataTypes.STRING,
    primaryKey: true,
  },
  guildLocale: {
    field: 'guild_locale',
    type: DataTypes.STRING,
  },
  guildPrefix: {
    field: 'guild_prefix',
    type: DataTypes.STRING,
  },
}, {tableName: 'guilds'});

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 08 октября 2018

Хорошо, проблема кажется , которая была attributes: ['guildLocale'] в методе .findOrCreate().Я не могу сказать, почему, если честно, собираюсь прочесть этот документ еще раз, чтобы быть уверенным, но я оставлю этот ответ, если у другого новичка возникнут проблемы с этим, P ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...