knex.js 760 B

12345678910111213141516171819202122232425262728293031
  1. const knex = require("knex");
  2. const env = require("./env");
  3. const isSQLite = env.DB_CLIENT === "sqlite3" || env.DB_CLIENT === "better-sqlite3";
  4. const isPostgres = env.DB_CLIENT === "pg" || env.DB_CLIENT === "pg-native";
  5. const isMySQL = env.DB_CLIENT === "mysql" || env.DB_CLIENT === "mysql2";
  6. const db = knex({
  7. client: env.DB_CLIENT,
  8. connection: {
  9. ...(isSQLite && { filename: env.DB_FILENAME }),
  10. host: env.DB_HOST,
  11. port: env.DB_PORT,
  12. database: env.DB_NAME,
  13. user: env.DB_USER,
  14. password: env.DB_PASSWORD,
  15. ssl: env.DB_SSL,
  16. pool: {
  17. min: env.DB_POOL_MIN,
  18. max: env.DB_POOL_MAX
  19. }
  20. },
  21. useNullAsDefault: true,
  22. });
  23. db.isPostgres = isPostgres;
  24. db.isSQLite = isSQLite;
  25. db.isMySQL = isMySQL;
  26. module.exports = db;