diff --git a/server/src/db/index.ts b/server/src/db/index.ts index 40f6898..c8262ef 100644 --- a/server/src/db/index.ts +++ b/server/src/db/index.ts @@ -1,3 +1,19 @@ import pg from "pg"; export const db = new pg.Pool(); + +export const INIT_TABLES = ` + CREATE TABLE IF NOT EXISTS "user" ( + id SERIAL PRIMARY KEY, + name VARCHAR(128) UNIQUE NOT NULL, + email VARCHAR(128), + password TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ); + CREATE TABLE IF NOT EXISTS "game" ( + id SERIAL PRIMARY KEY, + pgn TEXT, + white_id INT REFERENCES "user", + black_id INT REFERENCES "user" + ); +`; diff --git a/server/src/db/init.sql b/server/src/db/init.sql deleted file mode 100644 index a4c2c80..0000000 --- a/server/src/db/init.sql +++ /dev/null @@ -1,15 +0,0 @@ --- users -CREATE TABLE "user" ( - id SERIAL PRIMARY KEY, - name VARCHAR(128) UNIQUE NOT NULL, - email VARCHAR(128), - password TEXT -); - --- games -CREATE TABLE "game" ( - id SERIAL PRIMARY KEY, - pgn TEXT, - white_id INT REFERENCES "user", - black_id INT REFERENCES "user", -); \ No newline at end of file diff --git a/server/src/server.ts b/server/src/server.ts index bda46c0..2bc1380 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -6,7 +6,7 @@ import { createServer } from "http"; import session from "./middleware/session.js"; import { Server } from "socket.io"; import { init as initSocket } from "./socket/index.js"; -import { db } from "./db/index.js"; +import { db, INIT_TABLES } from "./db/index.js"; import routes from "./routes/index.js"; const corsConfig = { @@ -18,7 +18,14 @@ const app = express(); const server = createServer(app); // database -db.connect(); +await db.connect(); +db.query(INIT_TABLES, (err) => { + if (err) { + console.error(err); + } else { + console.log("Tables initialized"); + } +}); // middleware app.use(cors(corsConfig));