Проблема
У меня есть модель 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
:
ignoreDuplicates
of bulkCreate()
:
введите описание изображения здесь