knex.ts 845 B

123456789101112131415161718192021222324252627282930
  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. const db = knex({
  9. client: "postgres",
  10. connection: {
  11. host: process.env.DB_HOST,
  12. port: Number(process.env.DB_PORT) || 5432,
  13. database: process.env.DB_NAME,
  14. user: process.env.DB_USER,
  15. password: process.env.DB_PASSWORD,
  16. ssl: process.env.DB_SSL === "true"
  17. }
  18. });
  19. export async function initializeDb() {
  20. await createUserTable(db);
  21. await createIPTable(db);
  22. await createDomainTable(db);
  23. await createHostTable(db);
  24. await createLinkTable(db);
  25. await createVisitTable(db);
  26. }
  27. export default db;