Agradecemos tu apoyo para extender nuestros tutoriales referente a las ciencias de la computación.
Solución:
Puede utilizar la función integrada de Sequelize bulkCreate
método para lograrlo.
User.bulkCreate([
username: 'barfooz', isAdmin: true ,
username: 'foo', isAdmin: true ,
username: 'bar', isAdmin: false
]).then(() => // Notice: There are no arguments here, as of right now you'll have to...
return User.findAll();
).then(users =>
console.log(users) // ... in order to get the array of user objects
)
Secuela | Creación y actualización masiva
utilicé el cargo
utilidad de la biblioteca asíncrona para cargar hasta 1000 filas a la vez. Consulte el siguiente código para cargar un csv en una base de datos:
var fs = require('fs'),
async = require('async'),
csv = require('csv');
var input = fs.createReadStream(filename);
var parser = csv.parse(
columns: true,
relax: true
);
var inserter = async.cargo(function(tasks, inserterCallback)
model.bulkCreate(tasks).then(function()
inserterCallback();
);
,
1000
);
parser.on('readable', function ()
while(line = parser.read())
inserter.push(line);
);
parser.on('end', function (count)
inserter.drain = function()
doneLoadingCallback();
);
input.pipe(parser);
Si realmente desea usar bulkInsert, mi respuesta anterior es suficiente. Sin embargo, ¡se quedará sin memoria si tiene muchos datos! Realmente es mejor usar algún método de base de datos integrado que sea mejor para esto. El problema es que está cargando todos los datos en la memoria hasta que se ejecuta bulkCreate. Si tiene un millón de filas, probablemente se quedará sin memoria antes de que se ejecute. Aún así, si lo pone en cola usando algo como async.cargo, aún estará esperando que el db se comunique con usted mientras los datos consumen toda su memoria de manera asíncrona.
Mi solución fue deshacerme de la secuencia para la carga de datos (al menos hasta que implementen la transmisión o algo así (ver su problema de github #2454)). Terminé creando db-streamer, pero por ahora solo tiene soporte para pg. Querrás ver streamsql para mysql.