name: supabase-to-appwrite-migration description: Supabase to Appwrite migration workflow and risk controls. Use when planning or executing migrations of auth users, database rows, storage objects, and post-migration permission hardening.
Supabase To Appwrite Migration
Use this skill when moving an existing Supabase project to Appwrite.
Verified Baseline
- Appwrite provides a Supabase migration flow in Console.
- Migration is initiated from Project Settings migration area.
- You provide source credentials, choose resources, then start migration.
Migration Workflow
- Read migration overview and source-specific limitations first.
- Gather required Supabase credentials.
- Create or choose target Appwrite project.
- Start migration wizard and select Supabase.
- Select resources and run migration.
- Validate auth/data/storage integrity before production cutover.
What To Validate After Import
- User account counts and key identity fields.
- Table/row counts and spot checks on critical entities.
- File/object accessibility and metadata integrity.
- Permission model on all migrated resources.
- App clients registered under Appwrite platforms.
Known Limitation Areas
- Some source-specific features do not map one-to-one.
- Postgres-specific advanced features can require manual redesign.
- OAuth users can require re-authentication after migration.
- Functions are typically migrated manually due to runtime differences.
- Some metadata fields may not transfer exactly.
Security Hardening After Migration
- Rebuild permissions with least privilege instead of trusting imported defaults.
- Re-enable row security where required.
- Remove broad read/write grants before opening production traffic.
- Move privileged write paths to server-only clients.
- Rotate all service keys before production launch.
Supabase RLS Translation Checklist
- Treat Supabase RLS policies as non-portable logic and redesign them explicitly for Appwrite.
- Replace SQL policy predicates with row permissions plus server-side business-rule checks.
- Ensure table-level create permissions are tight, then assign row-level read/update/delete permissions on creation.
- Validate every prior RLS rule with negative tests for cross-tenant and cross-role access.
- Keep admin and batch-write paths on server SDK with explicit tenant and ownership checks.
Cutover Strategy
- Freeze source writes during final sync window.
- Run final validation scripts and manual critical-path checks.
- Switch client endpoints and environment settings.
- Monitor auth failures, permission denials, and data consistency.
- Keep rollback window and source backup until confidence threshold is met.
Cost and Operations Notes
- Appwrite Cloud migration processing is not billed as normal project usage.
- Source provider transfer or egress charges may still apply.
References
- https://appwrite.io/docs/advanced/migrations
- https://appwrite.io/docs/advanced/migrations/supabase
- https://appwrite.io/docs/products/databases/permissions
- https://appwrite.io/docs/products/databases/rows
- https://appwrite.io/docs/advanced/platform/permissions
- https://appwrite.io/docs/advanced/platform/api-keys