Size: a a a

Node.js — русскоговорящее сообщество

2021 January 15

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Я так понимаю ругается на то, что запись с таким primary-key-id уже есть, но самая последняя запись имеет id 11, потому каким макаром autoincrement работает с числом 5 я просто не догоняю
источник

V

Vlad in Node.js — русскоговорящее сообщество
Dmytro Svyrydenko
Хаю всем, кто-то знает че делать с такой проблемой? Sequelize + Postgres
Пытаюсь создать около 10 записей. Делал это и через await Promise.all с транзакцией. Подумал что может параллельность вызывает проблему (хотя транзакция должна это предотвращать), но потом даже for of с await внутри тела цикла не помог. Т.е. в проблема в чем-то другом
покажи код
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Vlad
покажи код
Если имеется в виду создание, то вот
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Dmytro Svyrydenko
Если имеется в виду создание, то вот
Ну и сам метод создания, который описан внутри модели
источник

V

Vlad in Node.js — русскоговорящее сообщество
Dmytro Svyrydenko
Ну и сам метод создания, который описан внутри модели
.forEach не ждет await
источник

V

Vlad in Node.js — русскоговорящее сообщество
замени все на for
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Vlad
.forEach не ждет await
Блин точно, голова
Спасибо, попробую)
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Vlad
замени все на for
Увы не помогло
Правда в ошибке теперь фигурирует не id=5, а id=6
Как будто один проход все же сработал, а дальше завалилось
источник

C

Chris in Node.js — русскоговорящее сообщество
Dmytro Svyrydenko
Хаю всем, кто-то знает че делать с такой проблемой? Sequelize + Postgres
Пытаюсь создать около 10 записей. Делал это и через await Promise.all с транзакцией. Подумал что может параллельность вызывает проблему (хотя транзакция должна это предотвращать), но потом даже for of с await внутри тела цикла не помог. Т.е. в проблема в чем-то другом
Подготовь объекты и вставляй все сразу через bulkCreate
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Dmytro Svyrydenko
Блин точно, голова
Спасибо, попробую)
Вот так вот forEach заменил на for
Мало ли я не правильно сделал
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Chris
Подготовь объекты и вставляй все сразу через bulkCreate
А bulk можно ведь в транзакцию закинуть? Чтоб вдруг чего откатить весь bulk
источник

C

Chris in Node.js — русскоговорящее сообщество
Можно
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Chris
Подготовь объекты и вставляй все сразу через bulkCreate
А в чем собственно проблема моего подхода? Хочу понять, чтоб разобраться и не повторить ошибку)
источник

V

Vlad in Node.js — русскоговорящее сообщество
Dmytro Svyrydenko
Вот так вот forEach заменил на for
Мало ли я не правильно сделал
может ты айдишник передаешь конкретный?
источник

C

Chris in Node.js — русскоговорящее сообщество
Dmytro Svyrydenko
А в чем собственно проблема моего подхода? Хочу понять, чтоб разобраться и не повторить ошибку)
Оверхед по времени от кучи обращений к базе
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Vlad
может ты айдишник передаешь конкретный?
У меня в методе модели, где сама вставка в базу идет, в принципе нету айдишника, так что исключено
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Chris
Оверхед по времени от кучи обращений к базе
Получается вместо условных 10 запросов к базе, через bulk выполнится один запрос сразу со всеми данными? А есть какие-то минусы в данном варианте? Или это типо стандартный вариант записывания массива данных?
источник

C

Chris in Node.js — русскоговорящее сообщество
Всё верно.
Это всё превращается во вполне обычный INSERT INTO table (...) VALUES (...), (...),...
источник

DS

Dmytro Svyrydenko in Node.js — русскоговорящее сообщество
Chris
Всё верно.
Это всё превращается во вполне обычный INSERT INTO table (...) VALUES (...), (...),...
Хорошо, спасибо) надеюсь ошибка исчезнет :D
источник

C

Chris in Node.js — русскоговорящее сообщество
Dmytro Svyrydenko
Получается вместо условных 10 запросов к базе, через bulk выполнится один запрос сразу со всеми данными? А есть какие-то минусы в данном варианте? Или это типо стандартный вариант записывания массива данных?
Минусы - ограничение длины запроса в 2³¹ символов 🙃 Но обычно люди не загоняют в БД по 2 гигабайта за раз
источник