This repository has been archived on 2024-05-29. You can view files and clone it, but cannot push or open issues or pull requests.
reset-sender-v2/scripts/init-db.js

36 lines
1.4 KiB
JavaScript

import { Kysely, SqliteDialect, sql } from "kysely";
import Database from "better-sqlite3";
import "dotenv/config";
const path = process.env.DATABASE_PATH;
if (!path) {
throw new Error("DATABASE_PATH environment variable is not defined.");
}
const database = new Database(path);
database.exec("PRAGMA journal_mode = WAL;");
const dialect = new SqliteDialect({ database });
const db = new Kysely({ dialect });
await db.schema
.createTable("letters")
.addColumn("id", "integer", (c) => c.primaryKey())
.addColumn("created", "datetime", (c) => c.defaultTo(sql`CURRENT_TIMESTAMP`).notNull())
.addColumn("updated", "datetime", (c) => c.defaultTo(sql`CURRENT_TIMESTAMP`).notNull())
.addColumn("firstName", "text", (c) => c.notNull())
.addColumn("lastName", "text", (c) => c.notNull())
.addColumn("language", "text", (c) => c.notNull())
.addColumn("email", "text", (c) => c.notNull())
.addColumn("phone", "text")
.addColumn("variant", "text", (c) => c.notNull())
.addColumn("gender", "text")
.addColumn("branch", "text", (c) => c.notNull())
.addColumn("isClient", "boolean", (c) => c.notNull())
.addColumn("message", "text", (c) => c.notNull())
.addColumn("subscribed", "boolean", (c) => c.notNull())
.addColumn("confirmationToken", "text", (c) => c.notNull())
.addColumn("confirmed", "boolean", (c) => c.notNull().defaultTo(false))
.execute();
console.log("✓ Database initialized");