init db on server startup

This commit is contained in:
Nathaniel Tampus
2023-03-19 20:44:01 +08:00
parent a9630a4cf1
commit 42dc24a9bc
3 changed files with 25 additions and 17 deletions

View File

@@ -1,3 +1,19 @@
import pg from "pg"; import pg from "pg";
export const db = new pg.Pool(); 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"
);
`;

View File

@@ -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",
);

View File

@@ -6,7 +6,7 @@ import { createServer } from "http";
import session from "./middleware/session.js"; import session from "./middleware/session.js";
import { Server } from "socket.io"; import { Server } from "socket.io";
import { init as initSocket } from "./socket/index.js"; 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"; import routes from "./routes/index.js";
const corsConfig = { const corsConfig = {
@@ -18,7 +18,14 @@ const app = express();
const server = createServer(app); const server = createServer(app);
// database // database
db.connect(); await db.connect();
db.query(INIT_TABLES, (err) => {
if (err) {
console.error(err);
} else {
console.log("Tables initialized");
}
});
// middleware // middleware
app.use(cors(corsConfig)); app.use(cors(corsConfig));