All 57 pre-existing migrations have been registered in prod's
schema_migrations table so db push --include-all will skip them
and only apply new migrations.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Production only had one migration tracked in schema_migrations.
With --include-all, db push tried to re-run all 57 earlier migrations.
Without it, only migrations newer than the latest tracked version are applied.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Allows migrations with timestamps before existing remote migrations
to be applied. Needed when migration files are renamed or when
environments have diverged.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use matrix strategy to deploy sequentially: non-prod first, then prod.
This ensures both environments stay in sync and provides a safety gate.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use grep to only match lines starting with lowercase (function names),
and add validation to skip empty or invalid names.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
CLI expects supabase/functions/ relative to workdir, so --workdir apps
makes it find apps/supabase/functions/.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
supabase db push doesn't support --project-ref, it relies on link.
Run link from apps/supabase so the config is in the right place.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Allow manual triggering via workflow_dispatch
- Trigger on changes to the workflow file itself
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The supabase link command was running from repo root while db push
ran from apps/supabase, causing it to not find the linked project.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>