From b655c3b30430f6a2d98966a9c685cb28d28ea5b0 Mon Sep 17 00:00:00 2001 From: MaksSlyzar Date: Sun, 29 Mar 2026 14:30:52 +0300 Subject: [PATCH] db config update --- game-server/package.json | 1 + game-server/src/config/config.js | 1 + game-server/src/config/db.js | 48 +++++++++++++++++++++----------- 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/game-server/package.json b/game-server/package.json index e5b6a44..0b55fcd 100644 --- a/game-server/package.json +++ b/game-server/package.json @@ -18,6 +18,7 @@ "dotenv": "^17.3.1", "express": "^5.2.1", "jsonwebtoken": "^9.0.3", + "pg": "^8.20.0", "sequelize": "^6.37.8", "socket.io": "^4.8.3", "sqlite3": "^6.0.1" diff --git a/game-server/src/config/config.js b/game-server/src/config/config.js index ff63738..2e6146e 100644 --- a/game-server/src/config/config.js +++ b/game-server/src/config/config.js @@ -7,6 +7,7 @@ const config = { serverSecret: process.env.SERVER_SECRET, serverDescription: process.env.DESCRIPTION, serverRegion: process.env.REGION, + dbUri: process.env.DB_URI || "local", }; module.exports = config; diff --git a/game-server/src/config/db.js b/game-server/src/config/db.js index 822c30d..5fadd0e 100644 --- a/game-server/src/config/db.js +++ b/game-server/src/config/db.js @@ -1,30 +1,44 @@ const { Sequelize } = require("sequelize"); +const config = require("./config"); // Шлях до твого файлу з конфігом -const sequelize = new Sequelize({ - dialect: "sqlite", - storage: "./database.sqlite", - logging: false, - dialectOptions: { - timeout: 20000, - }, - pool: { - max: 1, - min: 1, - idle: 10000, - acquire: 30000, - }, -}); +const isLocal = config.dbUri === "local"; + +const sequelize = isLocal + ? new Sequelize({ + dialect: "sqlite", + storage: "./database.sqlite", + logging: false, + dialectOptions: { timeout: 20000 }, + pool: { max: 1, min: 1, idle: 10000, acquire: 30000 }, + }) + : new Sequelize(config.dbUri, { + dialect: "postgres", + logging: false, + dialectOptions: { + ssl: { + require: true, + rejectUnauthorized: false, + }, + }, + pool: { max: 5, min: 0, idle: 10000, acquire: 30000 }, + }); sequelize.initDatabase = async () => { try { await sequelize.authenticate(); - await sequelize.query("PRAGMA journal_mode=WAL;"); - await sequelize.query("PRAGMA foreign_keys = OFF;"); + + if (isLocal) { + await sequelize.query("PRAGMA journal_mode=WAL;"); + await sequelize.query("PRAGMA foreign_keys = OFF;"); + } await sequelize.sync({ alter: true }); - await sequelize.query("PRAGMA foreign_keys = ON;"); + if (isLocal) { + await sequelize.query("PRAGMA foreign_keys = ON;"); + } + console.log(`✅ Database connected (${isLocal ? "SQLite" : "Postgres"})`); return true; } catch (error) { console.error("❌ Database Init Error:", error);