db config update
This commit is contained in:
parent
3c8c3532ca
commit
b655c3b304
@ -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"
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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";
|
||||||
|
|
||||||
|
const sequelize = isLocal
|
||||||
|
? new Sequelize({
|
||||||
dialect: "sqlite",
|
dialect: "sqlite",
|
||||||
storage: "./database.sqlite",
|
storage: "./database.sqlite",
|
||||||
logging: false,
|
logging: false,
|
||||||
|
dialectOptions: { timeout: 20000 },
|
||||||
|
pool: { max: 1, min: 1, idle: 10000, acquire: 30000 },
|
||||||
|
})
|
||||||
|
: new Sequelize(config.dbUri, {
|
||||||
|
dialect: "postgres",
|
||||||
|
logging: false,
|
||||||
dialectOptions: {
|
dialectOptions: {
|
||||||
timeout: 20000,
|
ssl: {
|
||||||
|
require: true,
|
||||||
|
rejectUnauthorized: false,
|
||||||
},
|
},
|
||||||
pool: {
|
|
||||||
max: 1,
|
|
||||||
min: 1,
|
|
||||||
idle: 10000,
|
|
||||||
acquire: 30000,
|
|
||||||
},
|
},
|
||||||
|
pool: { max: 5, min: 0, idle: 10000, acquire: 30000 },
|
||||||
});
|
});
|
||||||
|
|
||||||
sequelize.initDatabase = async () => {
|
sequelize.initDatabase = async () => {
|
||||||
try {
|
try {
|
||||||
await sequelize.authenticate();
|
await sequelize.authenticate();
|
||||||
|
|
||||||
|
if (isLocal) {
|
||||||
await sequelize.query("PRAGMA journal_mode=WAL;");
|
await sequelize.query("PRAGMA journal_mode=WAL;");
|
||||||
await sequelize.query("PRAGMA foreign_keys = OFF;");
|
await sequelize.query("PRAGMA foreign_keys = OFF;");
|
||||||
|
}
|
||||||
|
|
||||||
await sequelize.sync({ alter: true });
|
await sequelize.sync({ alter: true });
|
||||||
|
|
||||||
|
if (isLocal) {
|
||||||
await sequelize.query("PRAGMA foreign_keys = ON;");
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user