Files
product-import-ai/scripts/create-local-scrape-db.ts

34 lines
985 B
TypeScript

import fs from "node:fs/promises";
import mariadb from "mariadb";
async function readEnv() {
return Object.fromEntries(
(await fs.readFile(".env", "utf8"))
.split(/\r?\n/)
.map((line) => line.trim())
.filter((line) => line && !line.startsWith("#") && line.includes("="))
.map((line) => {
const index = line.indexOf("=");
return [line.slice(0, index), line.slice(index + 1)];
}),
);
}
const env = await readEnv();
const connection = await mariadb.createConnection({
host: env.DB_HOST || "127.0.0.1",
port: Number(env.DB_PORT || 3306),
user: env.DB_USER || "root",
password: env.DB_PASSWORD || "",
});
try {
const sql = await fs.readFile("sql/local-scrape-db.sql", "utf8");
for (const statement of sql.split(/;\s*(?:\r?\n|$)/).map((item) => item.trim()).filter(Boolean)) {
await connection.query(statement);
}
console.log("Local scrape database and schema are ready.");
} finally {
await connection.end();
}