Сохраните поток данных в столбце PostgreSQL, используя typeOrm - PullRequest
0 голосов
/ 10 декабря 2018

Мне нужно сохранить содержимое большого файла CSV в столбце моей таблицы.Я пытался использовать буфер, но он возвращает FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory, это способ сохранить его с помощью потока, то есть сохранить только часть CSV в памяти, а не все данные CSV?

Сохранение всегоCSV в памяти:

let content = [];
   let bufferContent = null;
   await (new Promise(resolve => {
     notificationRequest.usersStream
       .on(‘data’, function(buffer) {
         content.push(buffer);
       })
       .on(‘end’, function() {
         bufferContent = Buffer.concat(content);
         resolve();
       });
   }));

Попытка сохранить буфер в БД:

this.dbRepository.save(bufferContent);

Выдает ошибку:

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

TypeORM Entity

@Column({ type: ‘bytea’, nullable: true})
 csvBuffer?: Buffer;

PS: если файл небольшой, приведенный выше код работает отлично.

...