Developer Docs
Database
Database schema, migrations, and data model
Overview
Hopshift uses PostgreSQL hosted on Supabase, with Drizzle ORM for type-safe database access.
Schema
The database is organized into these key areas:
Organizations & Users
organizations: Company/tenant recordsusers: User accounts (linked to Supabase Auth)organization_members: User-org membership with roles
Employees
employees: Core employee recordsemployee_documents: Uploaded documentsdepartments: Organization departmentspositions: Job positions
Payroll
payroll_runs: Payroll processing recordspayroll_items: Individual employee payroll line itemssalary_records: Employee compensation history
Time & Attendance
time_entries: Clock in/out recordsschedules: Work schedule definitionsshift_assignments: Employee shift assignments
Leave
leave_policies: Leave type configurationsleave_requests: Employee leave requestsleave_balances: Current leave balances
Migrations
Migrations are managed with Drizzle Kit:
cd packages/database
pnpm db:generate # Generate migration from schema changes
pnpm db:migrate # Apply pending migrations
pnpm db:studio # Open Drizzle StudioRow-Level Security
Supabase RLS policies ensure data isolation between organizations.