This repository has been archived on 2026-05-04. You can view files and clone it, but cannot push or open issues or pull requests.
Galaxy-Strike-Online/game-server/src/config/db.js
2026-04-21 08:48:52 +03:00

50 lines
1.2 KiB
JavaScript

const { Sequelize } = require("sequelize");
const config = require("./config"); // Шлях до твого файлу з конфігом
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();
if (isLocal) {
await sequelize.query("PRAGMA journal_mode=WAL;");
await sequelize.query("PRAGMA foreign_keys = OFF;");
}
await sequelize.sync();
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);
throw error;
}
};
module.exports = sequelize;