Add local scrape database mode and schema
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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();
|
||||
}
|
||||
Reference in New Issue
Block a user