git/db.js

38 lines
1.1 KiB
JavaScript

import Database from 'better-sqlite3';
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const dbPath = process.env.SANDBOX_DB_PATH || path.resolve(__dirname, '../sandbox/server/sandbox.db');
const db = new Database(dbPath);
db.pragma('journal_mode = WAL');
db.pragma('foreign_keys = ON');
db.exec(`
CREATE TABLE IF NOT EXISTS users (
id TEXT PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
email TEXT UNIQUE,
password_hash TEXT,
discord_id TEXT UNIQUE,
global_name TEXT,
avatar TEXT,
created_at TEXT DEFAULT (datetime('now')),
updated_at TEXT DEFAULT (datetime('now'))
);
`);
const migrations = [
"ALTER TABLE users ADD COLUMN email TEXT",
"ALTER TABLE users ADD COLUMN discord_id TEXT UNIQUE",
"ALTER TABLE users ADD COLUMN global_name TEXT",
"ALTER TABLE users ADD COLUMN avatar TEXT",
"ALTER TABLE users ADD COLUMN updated_at TEXT DEFAULT (datetime('now'))",
];
for (const sql of migrations) {
try { db.exec(sql); } catch {}
}
export default db;