knex.js 826 B

1234567891011121314151617181920212223242526272829303132
  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: "db/" + env.DB_FILENAME }),
  10. ...(isMySQL && { dateStrings: true, timezone: "Z" }),
  11. host: env.DB_HOST,
  12. port: env.DB_PORT,
  13. database: env.DB_NAME,
  14. user: env.DB_USER,
  15. password: env.DB_PASSWORD,
  16. ssl: env.DB_SSL,
  17. pool: {
  18. min: env.DB_POOL_MIN,
  19. max: env.DB_POOL_MAX
  20. }
  21. },
  22. useNullAsDefault: true,
  23. });
  24. db.isPostgres = isPostgres;
  25. db.isSqlite = isSqlite;
  26. db.isMySQL = isMySQL;
  27. module.exports = db;