For one-time import.
const _ = require('lodash');
const request = require('request');
const parse = require('csv-parse');
var strapi = require('strapi')();
var fs = require('fs');
// const remoteLink = "..."
const localFile = "./data.csv"
async function fetchData() {
return new Promise( resolve => {
data = []
header = null;
// source = request(remoteLink)
source = fs.createReadStream(localFile)
source.pipe(parse()).on('data', (row) => {
if(!header) { header = row; return; }
row = row.map(item=>item=='N/A' ? '' : item);
data.push(_.zipObject(header, row))
}).on('end', () => {
resolve(data);
});
});
}
async function initStrapi() {
await strapi.load();
await strapi.runBootstrapFunctions();
return strapi;
}
async function main() {
var [strapi, data] = await Promise.all([initStrapi(),fetchData()])
for(var i=0;i<data.length;i++) {
await strapi.services.shop.create(data[i]);
}
}
main()