-
Notifications
You must be signed in to change notification settings - Fork 2
feat: add complete Supabase disaster recovery system (backup + restore + GitHub Actions) #370
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…e + GitHub Actions)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedThe pull request is closed. WalkthroughA new Supabase disaster recovery system is introduced, comprising an automated GitHub Actions workflow that triggers daily backups, shell scripts for backup and restore operations, comprehensive documentation, and .gitignore updates to manage backup artifacts. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant GHA as GitHub Actions
participant Backup as backup.sh
participant DB as Supabase DB
participant Artifact as Artifacts
participant Git as Git Repo
GHA->>GHA: Daily trigger (cron) or manual dispatch
GHA->>Backup: Execute with SUPABASE_DB_URL
Backup->>Backup: Validate prerequisites & tools
Backup->>Backup: Create supabase_snapshot/ dir
rect rgb(220, 240, 255)
Note over Backup,DB: Sequential exports
Backup->>DB: Export extensions
Backup->>DB: Export schema (filtered)
Backup->>DB: Export RLS policies
Backup->>DB: Export functions & triggers
Backup->>DB: Export full data (pg_dump binary)
end
alt Optional seed data configured
Backup->>DB: Export seed data tables
end
Backup->>Backup: Generate backup_info.txt metadata
Backup->>GHA: Return success
GHA->>Artifact: Upload supabase_snapshot/ (30-day retention)
GHA->>Git: Commit SQL files + backup_info.txt (if changes exist)
GHA->>GHA: Generate & append job summary
sequenceDiagram
autonumber
participant User
participant Restore as restore.sh
participant DB as Supabase DB
participant Files as Backup Files
User->>Restore: Execute with SUPABASE_DB_URL
Restore->>Restore: Validate prerequisites & tools
Restore->>Files: Check backup files exist
Restore->>User: Prompt for confirmation
User->>Restore: Confirm restore
Restore->>DB: Test connection
rect rgb(220, 240, 255)
Note over Restore,DB: Sequential restoration
Restore->>Files: Read extensions file
Restore->>DB: Apply extensions
Restore->>Files: Read schema file
Restore->>DB: Apply schema & objects
Restore->>Files: Read data dump
Restore->>DB: Restore full data
Restore->>Files: Read functions & triggers
Restore->>DB: Apply functions & triggers
Restore->>Files: Read RLS policies
Restore->>DB: Apply RLS policies
end
Restore->>DB: Verify table count & data presence
Restore->>User: Report restore status
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Areas requiring extra attention:
Poem
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (5)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary by CodeRabbit
New Features
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.