| name | Database & ORM |
| description | Interaction with NeonDB Postgres using Drizzle ORM. |
Database Logic
Stack
- Database: Neon (Serverless Postgres)
- ORM: Drizzle ORM
- Driver:
@neondatabase/serverless
Connection
The database connection is initialized in db/index.ts.
import { neon } from '@neondatabase/serverless';
import { drizzle } from 'drizzle-orm/neon-http';
const sql = neon(process.env.DATABASE_URL!);
export const db = drizzle(sql);
Schema
Schema definitions are in db/schema.ts.
users, sessions, accounts, verifications: Auth tables.
analyses, chatbot_history: App specific tables.
Operations
Example of a database query:
import { db } from "@/db";
import { users } from "@/db/schema";
import { eq } from "drizzle-orm";
const user = await db.select().from(users).where(eq(users.email, "test@example.com"));
await db.insert(users).values({ ... });
Migrations
- Generate:
npx drizzle-kit generate
- Push:
npx drizzle-kit push (or migrate script)