kutt/server/knex.js

34 lines
829 B
JavaScript
Raw Permalink Normal View History

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");
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";
const db = knex({
2024-09-11 20:51:14 +02:00
client: env.DB_CLIENT,
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,
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,
});
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
db.compatibleILIKE = isPostgres ? "andWhereILike" : "andWhereLike";
2024-08-11 18:41:03 +03:30
module.exports = db;