Hopshift
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 records
  • users: User accounts (linked to Supabase Auth)
  • organization_members: User-org membership with roles

Employees

  • employees: Core employee records
  • employee_documents: Uploaded documents
  • departments: Organization departments
  • positions: Job positions

Payroll

  • payroll_runs: Payroll processing records
  • payroll_items: Individual employee payroll line items
  • salary_records: Employee compensation history

Time & Attendance

  • time_entries: Clock in/out records
  • schedules: Work schedule definitions
  • shift_assignments: Employee shift assignments

Leave

  • leave_policies: Leave type configurations
  • leave_requests: Employee leave requests
  • leave_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 Studio

Row-Level Security

Supabase RLS policies ensure data isolation between organizations.

On this page