added database seed function

This commit is contained in:
2025-10-29 00:34:34 -04:00
parent 33eca18e82
commit 67ce112934
5 changed files with 3702 additions and 2 deletions

12
api/.env.development Normal file
View File

@@ -0,0 +1,12 @@
# DATABASE SETTINGS
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ranger_unit_tracker
DB_USERNAME=dev
DB_PASSWORD=dev
# AUTH SETTINGS
AUTH_MODE=mock # mock bypasses authentik
# SERVER SETTINGS
SERVER_PORT=3000

3655
api/migrations/seed.sql Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -13,8 +13,10 @@
"migrate": "node ./scripts/migrate.js", "migrate": "node ./scripts/migrate.js",
"migrate:create": "npm run migrate -- create -ext sql -dir /migrations", "migrate:create": "npm run migrate -- create -ext sql -dir /migrations",
"migrate:seed": "node ./scripts/seed.js",
"migrate:up": "npm run migrate -- up", "migrate:up": "npm run migrate -- up",
"migrate:down": "npm run migrate -- down 1" "migrate:down": "npm run migrate -- down 1"
}, },
"dependencies": { "dependencies": {
"connect-sqlite3": "^0.9.16", "connect-sqlite3": "^0.9.16",

33
api/scripts/seed.js Normal file
View File

@@ -0,0 +1,33 @@
const dotenv = require("dotenv");
const path = require("path");
const mariadb = require("mariadb");
const fs = require("fs");
const mode = process.env.NODE_ENV || "development";
dotenv.config({ path: path.resolve(process.cwd(), `.env.${mode}`) });
const { DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD, DB_NAME } = process.env;
//do not accidentally seed prod pls
if (mode !== "development") {
process.exit(0);
}
(async () => {
const conn = await mariadb.createConnection({
host: DB_HOST,
port: DB_PORT,
user: DB_USERNAME,
password: DB_PASSWORD,
database: DB_NAME,
multipleStatements: true,
});
const seedFile = path.join(process.cwd(), "migrations", "seed.sql");
const sql = fs.readFileSync(seedFile, "utf8");
await conn.query(sql);
await conn.end();
console.log("Seeded");
})();

View File

@@ -4,8 +4,6 @@ const envFile = process.env.NODE_ENV === 'development' ? '.env.development' : '.
dotenv.config({ path: path.resolve(process.cwd(), envFile) }); dotenv.config({ path: path.resolve(process.cwd(), envFile) });
console.log(`Loaded environment from ${envFile}`); console.log(`Loaded environment from ${envFile}`);
console.log(process.env.DB_HOST)
const express = require('express') const express = require('express')
const cors = require('cors') const cors = require('cors')
const morgan = require('morgan') const morgan = require('morgan')