Data Layer
Database & Drizzle ORM
Working with Neon Serverless Postgres, relational schemas, migrations, and Drizzle queries.
Schemas are defined using Drizzle ORM with full relational exports, indexes, and automatic timestamp updates:
src/lib/server/db/schema.ts
export const purchases = pgTable('purchases', {
id: serial('id').primaryKey(),
transactionId: text('transaction_id').notNull().unique(),
userId: text('user_id').references(() => user.id, { onDelete: 'cascade' }),
productId: text('product_id').notNull(),
licenseKey: text('license_key').notNull().unique(),
status: text('status').default('active').notNull(),
createdAt: timestamp('created_at').defaultNow().notNull()
});Manage migrations, push schema changes, or launch Drizzle Studio with pre-configured scripts:
terminal
pnpm db:push # Synchronize schema directly with Neon Postgres
pnpm db:studio # Launch local visual database GUI
pnpm db:generate # Generate migration SQL files
pnpm db:migrate # Run migration bundle in production