assessment-model/src/app/db/db.ts
Jun-te Kim 224a8ad696 uplaod
2026-04-16 16:59:30 +00:00

50 lines
1.6 KiB
TypeScript

// db.ts
import { drizzle } from "drizzle-orm/node-postgres";
import { Pool } from "pg";
import * as portfolioSchema from "@/app/db/schema/portfolio";
import * as propertySchema from "@/app/db/schema/property";
import * as recommendationSchema from "@/app/db/schema/recommendations";
import * as materialSchema from "@/app/db/schema/materials";
import * as solarSchema from "@/app/db/schema/solar";
import * as EnergyAssessmentsSchema from "@/app/db/schema/energy_assessments";
import * as FundingSchema from "@/app/db/schema/funding";
import * as Relations from "@/app/db/schema/relations";
import * as Users from "@/app/db/schema/users";
import { tasks } from "@/app/db/schema/tasks/tasks";
import { subTasks } from "@/app/db/schema/tasks/subtask";
import * as CrmSchema from "@/app/db/schema/crm/hubspot_deal_table";
import * as UploadedFilesSchema from "@/app/db/schema/uploaded_files";
import * as PortfolioOrgSchema from "@/app/db/schema/portfolio_organisation";
import * as BulkAddressUploadsSchema from "@/app/db/schema/bulk_address_uploads";
export const pool = new Pool({
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT),
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
max: 20,
idleTimeoutMillis: 30000,
});
const schema = {
...portfolioSchema,
...propertySchema,
...recommendationSchema,
...materialSchema,
...solarSchema,
...Relations,
...EnergyAssessmentsSchema,
...FundingSchema,
...Users,
tasks,
subTasks,
...CrmSchema,
...UploadedFilesSchema,
...PortfolioOrgSchema,
...BulkAddressUploadsSchema,
};
export const db = drizzle(pool, {
schema: schema,
});