Files
sbsports/server/db.js
alexandrump 78c5ed52ac feat: initial sbsports deployment setup
Add Coolify/Woodpecker CI config, .gitignore, and deployment scripts.
2026-04-22 01:01:42 +02:00

46 lines
1.2 KiB
JavaScript

import Database from "better-sqlite3";
import { join, dirname } from "path";
import { fileURLToPath } from "url";
import { mkdirSync } from "fs";
const __dirname = dirname(fileURLToPath(import.meta.url));
const DATA_DIR = process.env.DATA_DIR || join(__dirname, "../data");
mkdirSync(DATA_DIR, { recursive: true });
const db = new Database(join(DATA_DIR, "db.sqlite"));
// Enable WAL for better concurrent read performance
db.pragma("journal_mode = WAL");
db.pragma("foreign_keys = ON");
db.exec(`
CREATE TABLE IF NOT EXISTS students (
id TEXT PRIMARY KEY,
firstName TEXT NOT NULL,
lastName TEXT NOT NULL,
age INTEGER,
sex TEXT,
weight REAL,
height REAL,
imc REAL
);
CREATE TABLE IF NOT EXISTS activities (
id TEXT PRIMARY KEY,
studentId TEXT NOT NULL REFERENCES students(id) ON DELETE CASCADE,
type TEXT,
durationInput REAL,
durationUnit TEXT,
duration REAL,
displayDuration TEXT,
intensity TEXT,
lifestyle TEXT,
anxiety INTEGER DEFAULT 0,
grade TEXT,
date TEXT,
createdAt TEXT DEFAULT (datetime('now'))
);
`);
export default db;