Sequelize: isNewRecord всегда ложно - PullRequest
0 голосов
/ 12 июля 2020

Проблема

У меня есть модель Sequelize под названием Test с уникальным полем: value (первичный ключ). Я использую SQLite в качестве системы управления базами данных.

Если я использую ignoreDuplicates: true в качестве опции bulkCreate(), предполагается, что bulkCreate игнорирует новые вставки, если они существуют в базе данных . Это отлично работает, но все объекты массива, возвращаемого методом bulkCreate(), всегда устанавливают атрибут isNewRecord на false, даже если в базу данных была вставлена ​​новая запись.

Код

const items = [ {value: 'a'}, {value: 'b'} ]; // Items to save on database.

const results = await Test.bulkCreate(items, {
    ignoreDuplicates: true // Ignore duplicate records
});

После первого выполнения bulkCreate() и пустой базы данных, значение results:

[
  Test {
    dataValues: {
      value: 'a',
      createdAt: 2020-07-12T12:01:08.695Z,
      updatedAt: 2020-07-12T12:01:08.695Z
    },
    _previousDataValues: {
      value: 'a',
      createdAt: 2020-07-12T12:01:08.695Z,
      updatedAt: 2020-07-12T12:01:08.695Z
    },
    _changed: Set {},
    _options: {
      isNewRecord: true,
      _schema: null,
      _schemaDelimiter: '',
      include: undefined
    },
    isNewRecord: false
  },
  Test {
    dataValues: {
      value: 'b',
      createdAt: 2020-07-12T12:01:08.695Z,
      updatedAt: 2020-07-12T12:01:08.695Z
    },
    _previousDataValues: {
      value: 'b',
      createdAt: 2020-07-12T12:01:08.695Z,
      updatedAt: 2020-07-12T12:01:08.695Z
    },
    _changed: Set {},
    _options: {
      isNewRecord: true,
      _schema: null,
      _schemaDelimiter: '',
      include: undefined
    },
    isNewRecord: false
  }
]

Я ожидал true для всех isNewRecord в первом исполнение. Что мне не хватает?

Среда

  • Windows 10 Pro
  • NodeJS v12.16.2
  • sequelize: 6.3. 3
  • sqlite3: 5.0.0

Продолжить документы

isNewRecord из Model:

enter image description here

ignoreDuplicates of bulkCreate():

введите описание изображения здесь

...