gpt4 book ai didi

node.js + sequelize 批量插入

转载 作者:行者123 更新时间:2023-12-03 22:43:17 38 4
gpt4 key购买 nike

我是 node.js 和 sequelize 的新手。我已经用 sequelize 构建了一个 mysql db,它符合我对实际项目的需求。

然后我搜索了用 sequelize 填充数据库的可能性,将它与 csv 文件结合的方法对我来说似乎是最好的解决方案。

我有三个单独的表的三个 csv 文件,并在 github https://gist.github.com/evansiroky/167f218bb5342bff80c6#file-sequelizebulkinsert-js 上找到了 Evan 的脚本

任何人都可以帮助我了解如何实现它来完成这项工作吗?我知道这一定是一个非常基本的问题,但我不知道如何。

最佳答案

如果你只想用数据填充你的数据库,你仍然可以用老式的方式来做,使用 mysql 的 mysqlimport 或其他工具。

如果这是你经常做的事情,也许你可以尝试创建一个函数来调用 sequelizeBulkInsert 脚本,假设它工作正常(未经测试):

// sequelizeBulkInsert.js
var fs = require('fs');
var async = require('async');
var csv = require('csv');


module.exports = function(Model){
this.importFile = function(filename, doneLoadingCallback) {
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);
}
}

然后,在另一个文件中
var Bulk = require('/path/to/sequelizeBulkInsert');
var bulk = new Bulk(Model);

bulk.importFile('path_to_data.csv', function(){
//data is imported
})

关于node.js + sequelize 批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50706528/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com