Loading...
Loading...
Supabase database migrations, type generation, edge function management, and best practices for this project
npx skill4agent add sourman/skills supabase-workflownpx supabase migration new <name>npx supabase migration new descriptive_migration_namesupabase/migrations/# Mark migration as applied (skip execution)
npx supabase migration repair --status applied <timestamp>
# Example:
npx supabase migration repair --status applied 20260122214732npx supabase db push# Show recent migrations
npx supabase migration list | tail -5npx supabase migration new# Generate from remote database (recommended for this project)
npx supabase gen types typescript --linked > src/integrations/supabase/types.ts
# If local Supabase is running (Docker required)
npx supabase gen types typescript --local > src/integrations/supabase/types.tssrc/integrations/supabase/types.ts# Create new function directory
npx supabase functions new my-function-name
# Or create directory manually in supabase/functions/<function-name>/verify_jwt = falsesupabase/config.tomlsupabase/config.toml[functions.my-function-name]
enabled = true
verify_jwt = false # Always false for this project
import_map = "./functions/my-function-name/deno.json"
entrypoint = "./functions/my-function-name/index.ts"npx supabase functions deploy my-function-namenpx supabase functions delete function-namerm -rf supabase/functions/function-name[functions.function-name]supabase/config.toml# 1. Delete from remote
npx supabase functions delete create-team-member
# 2. Delete local directory
rm -rf supabase/functions/create-team-member
# 3. Edit config.toml to remove the function section
# Remove lines like:
# [functions.create-team-member]
# enabled = true
# verify_jwt = false
# import_map = "./functions/create-team-member/deno.json"
# entrypoint = "./functions/create-team-member/index.ts"# List all functions
ls supabase/functions/
# Check config for function definitions
grep -A 4 "\[functions" supabase/config.toml# Run a query
bun run supabase:sql --query "SELECT COUNT(*) FROM profiles"
# Alternative: Use the generated TypeScript CLI
./supabase-cli execute-sql --query "SELECT COUNT(*) FROM profiles"npx supabase migration new describe_the_changenpx supabase db pushnpx supabase gen types typescript --linked > src/integrations/supabase/types.ts# Use bun run supabase:sql --query for quick queries
bun run supabase:sql --query "SELECT * FROM profiles LIMIT 5"
# Or use the generated CLI
./supabase-cli execute-sql --query "SELECT * FROM app_roles"--linkedsrc/integrations/supabase/types.tssupabase/migrations/supabase/functions/supabase/config.toml--linked