init db on server startup
This commit is contained in:
@@ -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"
|
||||
);
|
||||
`;
|
||||
|
||||
@@ -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",
|
||||
);
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user