Appearance
Database Migration
Workflow
1. Edit schema → apps/web/src/db/schema.ts (Drizzle ORM)
2. Generate SQL → pnpm db:generate (outputs to supabase/migrations/)
3. Apply locally → pnpm db:reset (resets local DB with all migrations)
4. Test locally → pnpm dev:web
5. Push to cloud → pnpm db:push (applies migrations to Supabase Cloud)Commands
bash
# Generate migration from schema changes
pnpm db:generate
# Apply migration to local DB
pnpm db:migrate
# Reset local DB (drop + recreate + apply all migrations)
pnpm db:reset
# Start/stop local Supabase
pnpm db:start
pnpm db:stop
# Push migrations to Supabase Cloud (production)
# First link: supabase link --project-ref <project-id>
pnpm db:pushCollaboration
Each developer runs their own local Supabase (Docker). Migration files in supabase/migrations/ are shared via Git.
Developer A (local DB) Developer B (local DB)
│ │
└── supabase/migrations/ (shared via Git) ──┘When Developer A creates a new migration:
- A runs
pnpm db:generateand commits the migration file - B pulls and runs
pnpm db:resetto sync schema