This commit is contained in:
Robert MacRae 2026-03-29 08:45:08 -03:00
commit db36fd6a43
3 changed files with 33 additions and 17 deletions

View File

@ -18,6 +18,7 @@
"dotenv": "^17.3.1", "dotenv": "^17.3.1",
"express": "^5.2.1", "express": "^5.2.1",
"jsonwebtoken": "^9.0.3", "jsonwebtoken": "^9.0.3",
"pg": "^8.20.0",
"sequelize": "^6.37.8", "sequelize": "^6.37.8",
"socket.io": "^4.8.3", "socket.io": "^4.8.3",
"sqlite3": "^6.0.1" "sqlite3": "^6.0.1"

View File

@ -7,6 +7,7 @@ const config = {
serverSecret: process.env.SERVER_SECRET, serverSecret: process.env.SERVER_SECRET,
serverDescription: process.env.DESCRIPTION, serverDescription: process.env.DESCRIPTION,
serverRegion: process.env.REGION, serverRegion: process.env.REGION,
dbUri: process.env.DB_URI || "local",
}; };
module.exports = config; module.exports = config;

View File

@ -1,30 +1,44 @@
const { Sequelize } = require("sequelize"); const { Sequelize } = require("sequelize");
const config = require("./config"); // Шлях до твого файлу з конфігом
const sequelize = new Sequelize({ const isLocal = config.dbUri === "local";
dialect: "sqlite",
storage: "./database.sqlite", const sequelize = isLocal
logging: false, ? new Sequelize({
dialectOptions: { dialect: "sqlite",
timeout: 20000, storage: "./database.sqlite",
}, logging: false,
pool: { dialectOptions: { timeout: 20000 },
max: 1, pool: { max: 1, min: 1, idle: 10000, acquire: 30000 },
min: 1, })
idle: 10000, : new Sequelize(config.dbUri, {
acquire: 30000, dialect: "postgres",
}, logging: false,
}); dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false,
},
},
pool: { max: 5, min: 0, idle: 10000, acquire: 30000 },
});
sequelize.initDatabase = async () => { sequelize.initDatabase = async () => {
try { try {
await sequelize.authenticate(); 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.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; return true;
} catch (error) { } catch (error) {
console.error("❌ Database Init Error:", error); console.error("❌ Database Init Error:", error);