knex.ts 870 B

123456789101112131415161718192021222324252627282930313233343536
  1. import knex from "knex";
  2. import { createUserTable } from "./models/user";
  3. import { createDomainTable } from "./models/domain";
  4. import { createLinkTable } from "./models/link";
  5. import { createVisitTable } from "./models/visit";
  6. import { createIPTable } from "./models/ip";
  7. import { createHostTable } from "./models/host";
  8. import env from "./env";
  9. const db = knex({
  10. client: "postgres",
  11. connection: {
  12. host: env.DB_HOST,
  13. port: env.DB_PORT,
  14. database: env.DB_NAME,
  15. user: env.DB_USER,
  16. password: env.DB_PASSWORD,
  17. ssl: env.DB_SSL,
  18. pool: {
  19. min: env.DB_POOL_MIN,
  20. max: env.DB_POOL_MAX
  21. }
  22. }
  23. });
  24. export async function initializeDb() {
  25. await createUserTable(db);
  26. await createIPTable(db);
  27. await createDomainTable(db);
  28. await createHostTable(db);
  29. await createLinkTable(db);
  30. await createVisitTable(db);
  31. }
  32. export default db;