mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-06-11 03:30:59 -05:00
* Update PlusVotingResult * Logic * Replace plus tiers * Testing initial * Test progress * Working one test * Tests * Schema different file * Dynamic test * Fix test util
26 lines
798 B
TypeScript
26 lines
798 B
TypeScript
import Database from "better-sqlite3";
|
|
import invariant from "tiny-invariant";
|
|
import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from "kysely";
|
|
import type { DB } from "./tables";
|
|
|
|
const migratedEmptyDb = new Database("db-test.sqlite3").serialize();
|
|
|
|
invariant(process.env["DB_PATH"], "DB_PATH env variable must be set");
|
|
const isInMemoryDB = process.env["DB_PATH"] === ":memory:";
|
|
|
|
export const sql = new Database(
|
|
isInMemoryDB ? migratedEmptyDb : process.env["DB_PATH"],
|
|
);
|
|
|
|
sql.pragma("journal_mode = WAL");
|
|
sql.pragma("foreign_keys = ON");
|
|
sql.pragma("busy_timeout = 5000");
|
|
|
|
export const db = new Kysely<DB>({
|
|
dialect: new SqliteDialect({
|
|
database: sql,
|
|
}),
|
|
log: process.env.NODE_ENV === "development" ? ["query"] : undefined,
|
|
plugins: [new ParseJSONResultsPlugin()],
|
|
});
|