Возражение js upsert граф не вставляет в связанную через модель

В настоящее время я пытаюсь сохранить данные и связать их с таблицей соединений. До сих пор модель отношения возражений, кажется, хорошо работает с этими двумя моделями.

Игры:

  static get relationMappings() {

    const Platforms = require('./platforms');

    return {
      platforms: {
       relation: Model.ManyToManyRelation,
       modelClass: Platforms,
       join: {
         from: 'games.id',
         through: {
           from: 'games_platforms.game_id',
           to: 'games_platforms.platform_id'
         },
         to: 'platforms.id'
       }
     }
    }
  }

Платформы:

static get relationMappings() {

    const Games = require('./games');

    return {
      games: {
       relation: Model.ManyToManyRelation,
       modelClass: Games,
       join: {
         from: 'platforms.id',
         through: {
           from: 'games_platforms.platform_id',
           to: 'games_platforms.game_id'
         },
         to: 'games.id'
       }
     }
    }
  }

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

const doc = await  Games.query()
                               .upsertGraph(game, {
                                 insertMissing: true,
                                 relate: true,
                               });

Это вставляет игру и создает отношение, но не создает платформу в таблице платформы, если она не существует. если я использую:

const doc = await  Games.query()
                               .upsertGraph(game, {
                                 insertMissing: true,
                               });

Это делает оба, но вызовет ошибку ключа дублирования, когда игра использует платформу, которая была загружена до этого. Это я не совсем понимаю, потому что, если я запускаю это снова, он ломается в том же месте по той же причине, но данные уже находятся в таблице paltform, так что не должно ли это быть с ошибкой в ​​первой попытке upsert?

Ошибка:(node:10428) error: duplicate key value violates unique constraint "platforms_pkey"

0 ответов

Другие вопросы по тегам