2024-08-11 18:41:03 +03:30
|
|
|
const knex = require("knex");
|
2020-01-30 18:51:52 +03:30
|
|
|
|
2024-08-11 18:41:03 +03:30
|
|
|
const env = require("./env");
|
2019-10-08 21:56:03 +03:30
|
|
|
|
2024-10-08 09:26:48 +03:30
|
|
|
const isSQLite = env.DB_CLIENT === "sqlite3" || env.DB_CLIENT === "better-sqlite3";
|
2024-10-07 14:35:47 +03:30
|
|
|
const isPostgres = env.DB_CLIENT === "pg" || env.DB_CLIENT === "pg-native";
|
|
|
|
const isMySQL = env.DB_CLIENT === "mysql" || env.DB_CLIENT === "mysql2";
|
|
|
|
|
2019-10-08 21:56:03 +03:30
|
|
|
const db = knex({
|
2024-09-11 20:51:14 +02:00
|
|
|
client: env.DB_CLIENT,
|
2019-10-08 21:56:03 +03:30
|
|
|
connection: {
|
2025-01-08 09:45:55 +03:30
|
|
|
...(isSQLite && { filename: env.DB_FILENAME }),
|
2020-01-30 18:51:52 +03:30
|
|
|
host: env.DB_HOST,
|
|
|
|
port: env.DB_PORT,
|
|
|
|
database: env.DB_NAME,
|
|
|
|
user: env.DB_USER,
|
|
|
|
password: env.DB_PASSWORD,
|
2020-02-10 18:35:05 +02:00
|
|
|
ssl: env.DB_SSL,
|
|
|
|
pool: {
|
|
|
|
min: env.DB_POOL_MIN,
|
|
|
|
max: env.DB_POOL_MAX
|
|
|
|
}
|
2024-09-14 04:50:29 +02:00
|
|
|
},
|
|
|
|
useNullAsDefault: true,
|
2019-10-08 21:56:03 +03:30
|
|
|
});
|
|
|
|
|
2024-10-07 14:35:47 +03:30
|
|
|
db.isPostgres = isPostgres;
|
2024-10-08 09:26:48 +03:30
|
|
|
db.isSQLite = isSQLite;
|
2024-10-07 14:35:47 +03:30
|
|
|
db.isMySQL = isMySQL;
|
2024-10-07 09:08:40 +03:30
|
|
|
|
2025-01-18 12:49:58 +03:30
|
|
|
db.compatibleILIKE = isPostgres ? "andWhereILike" : "andWhereLike";
|
|
|
|
|
2024-08-11 18:41:03 +03:30
|
|
|
module.exports = db;
|