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