Files
zkldi_Tachi/database-seeds/scripts/import.js
T
2021-10-01 14:48:21 +01:00

42 lines
1005 B
JavaScript

const { execSync } = require("child_process");
const fs = require("fs");
const path = require("path");
const { Command } = require("commander");
const logger = require("./logger");
const program = new Command();
program
.option("-d, --db <Database Name>")
program.parse(process.argv);
const options = program.opts();
if (!options.db) {
throw new Error(`Must provide database name with -d or --db.`);
}
const base = path.join(__dirname, "../collections");
for (const file of fs.readdirSync(base)) {
const filename = path.parse(file).name;
const fileLoc = path.join(base, file);
const command = `mongoimport -c=${filename} --jsonArray ${fileLoc} --db=${options.db}`;
const data = fs.readFileSync(fileLoc, "utf-8");
if (data === "[]") {
logger.info(`Skipping collection ${file} as the data is empty.`);
continue;
}
logger.info(`Running ${command}.`);
try {
execSync(command, {stdio: "inherit"});
} catch (err) {
logger.error(`Failed to import ${file}.`, { command, err });
}
}