Repository navigation
cmd migrate supabase
Pull schema, data, auth users, and storage buckets from a Supabase project and generate nSelf migration artifacts.
nself migrate supabase --project-ref <ref> --supabase-key <key> [flags]
nself migrate supabase connects to a live Supabase project via the PostgREST and Admin APIs, pulls your public schema, auth users, and storage buckets, then generates three migration artifacts: a Drizzle-compatible SQL migration file, a Hasura metadata YAML, and a shell script to import your auth users.
Unlike nself migrate firebase, this command requires live access to your Supabase project. Use NSELF_SUPABASE_SKIP=1 to skip live connectivity in CI environments.
With NSELF_V15=1 this command is nself db import supabase: it imports the project into a started nSelf project through a direct database connection, moves the auth users with their bcrypt hashes and the storage objects, translates simple row level security policies to Hasura permissions, and verifies the result. The flags below marked v1.5 apply only there; --project-ref and --supabase-key are then optional and --supabase-key and --out are unused. See Come-Home-Supabase.
| Flag (v1.5) | Description |
|---|---|
--db-url-env |
Environment variable holding the direct database URL |
--api-url |
Storage API URL (default https://<project-ref>.supabase.co) |
--service-key-env |
Environment variable holding the service_role key |
--plan, --keep-stage, --skip-storage
|
As for nself db import
|
| Flag | Default | Description |
|---|---|---|
--project-ref |
— | Supabase project reference ID (the ID in your project URL). Required. |
--supabase-key |
— |
service_role key from Supabase > Project Settings > API. Required.
|
--out |
. |
Output directory for generated files |
- Connect to Supabase and pull public schema (tables, columns, RLS policies where accessible)
- Pull auth users via the Supabase Admin API
- Pull storage buckets via the Supabase Storage API
- Generate a Drizzle-compatible SQL migration file
- Generate Hasura metadata YAML
- Generate an auth user import script
- Write all files to the output directory
| File | Contents |
|---|---|
supabase-migration.sql |
CREATE TABLE statements compatible with Drizzle and nSelf's Postgres instance |
hasura-metadata.yaml |
Hasura table tracking and permissions scaffold |
import-auth-users.sh |
Shell script to import Supabase auth users into nSelf Auth |
| Variable | Description |
|---|---|
NSELF_SUPABASE_SKIP |
Set to 1 to skip live Supabase connectivity (CI mode) |
# Basic migration
nself migrate supabase \
--project-ref abcdefghijkl \
--supabase-key eyJhbGci...
# Write artifacts to a named output directory
nself migrate supabase \
--project-ref abcdefghijkl \
--supabase-key eyJhbGci... \
--out ./migration
# CI environment: skip live connectivity
NSELF_SUPABASE_SKIP=1 nself migrate supabase \
--project-ref ci-project-ref \
--supabase-key ci-service-key-
Project ref: the alphanumeric ID in your Supabase project URL:
https://app.supabase.com/project/<ref> -
Service role key: Supabase Dashboard > Project Settings > API >
service_role(keep this secret)
After the command completes, apply the generated files to your nSelf project:
# Apply the schema migration
nself db migrate apply --file ./migration/supabase-migration.sql
# Apply Hasura metadata (via Hasura console or CLI)
hasura metadata apply --directory ./migration/hasura-metadata.yaml
# Import auth users
bash ./migration/import-auth-users.sh- Only the
publicschema is pulled. Tables in other schemas require manual migration. - Supabase-specific features (Edge Functions, Realtime subscriptions) are not converted.
- RLS policies are pulled where the
service_rolekey has access; reviewsupabase-migration.sqlbefore applying.
- cmd-migrate — v0.9 to v1 project migration
- cmd-migrate-firebase — migrate from Firebase
- cmd-db — run schema migrations on a live project
Getting Started
Commands
- Commands, Overview
- Lifecycle: cmd-init · cmd-build · cmd-start · cmd-stop · cmd-restart · cmd-dev
- Monitoring: cmd-status · cmd-logs · cmd-health · cmd-urls · cmd-doctor · cmd-monitor · cmd-alerts · cmd-sentry · cmd-watchdog
- Data: cmd-db · cmd-backup · cmd-dr · cmd-queue · cmd-webhooks
- Config: cmd-config · cmd-service · cmd-env · cmd-promote
- Networking: cmd-ssl · cmd-trust · cmd-dns-setup
- Security: cmd-access · cmd-security · cmd-secrets
- Tenancy: cmd-tenant · cmd-billing
- Plugins: cmd-plugin · cmd-license · cmd-dogfood (extracted, CLI-R11) · cmd-k8s (extracted, CLI-R11) · cmd-encryption (extracted, CLI-R11) · cmd-waf (extracted, CLI-R11) · cmd-federation (extracted, CLI-R11) · cmd-mail (extracted, CLI-R11) · cmd-dlq (extracted, CLI-R11)
- AI: cmd-ai · cmd-claw · cmd-model
- Templates: cmd-template
- Utilities: cmd-exec · cmd-clean · cmd-reset · cmd-update · cmd-upgrade · cmd-version · cmd-admin · cmd-migrate · cmd-migrate-firebase · cmd-migrate-supabase · cmd-completion
Features
- Features, Overview
- Feature-Auth
- Feature-Storage
- Feature-Search
- Feature-Functions
- Feature-Email
- Feature-Monitoring
- Feature-Plugins
- Feature-nClaw, AI Assistant
- Feature-nChat, Messaging
- Feature-nFamily, Family Social
- Feature-nCloud, Managed Hosting
- Feature-Memory-Rooms, Knowledge Organization
- Feature-Agent-Dashboard, Agent Metrics
- Feature-Image-Generation, AI Image Generation
Configuration
- Configuration, Overview
- Config-Env-Vars
- Config-Postgres
- Config-Hasura
- Config-Auth
- Config-Nginx
- Shared-Proxy
- Config-Optional-Services
- Config-Custom-Services
- Config-System
Plugins (87 + 10 monitoring)
- Plugin-Overview
- Plugin-Catalog
- Plugin-Install
- Plugin-Licensing
- Plugin-Architecture
- Plugin-Dev-Guide
- Plugin-Migrations-Contract
Free (25)
- plugin-backup
- plugin-content-acquisition
- plugin-content-progress
- plugin-cron
- plugin-donorbox
- plugin-feature-flags
- plugin-github
- plugin-github-runner
- plugin-invitations
- plugin-jobs
- plugin-link-preview
- plugin-mdns
- plugin-mlflow
- plugin-monitoring
- plugin-notifications
- plugin-notify
- plugin-paypal
- plugin-search
- plugin-shopify
- plugin-stripe
- plugin-subtitle-manager
- plugin-tokens
- plugin-torrent-manager
- plugin-vpn
- plugin-webhooks
Pro (62)
- plugin-access-controls
- plugin-activity-feed
- plugin-admin-api
- plugin-analytics
- plugin-auth
- plugin-bots
- plugin-browser
- plugin-calendar
- plugin-cdn
- plugin-chat
- plugin-claw
- plugin-claw-budget
- plugin-claw-news
- plugin-claw-web
- plugin-cloudflare
- plugin-cms
- plugin-compliance
- plugin-ddns
- plugin-devices
- plugin-documents
- plugin-entitlements
- plugin-file-processing
- plugin-game-metadata
- plugin-geocoding
- plugin-geolocation
- plugin-google
- plugin-home
- plugin-idme
- plugin-knowledge-base
- plugin-linkedin
- plugin-livekit
- plugin-media-processing
- plugin-meetings
- plugin-moderation
- plugin-mux
- plugin-object-storage
- plugin-observability
- plugin-photos
- plugin-podcast
- plugin-post
- plugin-realtime
- plugin-retro-gaming
- plugin-rom-discovery
- plugin-social
- plugin-sports
- plugin-support
- plugin-tmdb
- plugin-voice
- plugin-web3
- plugin-workflows
Planned (26)
plugin-auditplugin-blogplugin-checkoutplugin-commerceplugin-drmplugin-exportplugin-flowplugin-importplugin-ldapplugin-mailgunplugin-mediaplugin-oauth-providersplugin-pagesplugin-postmarkplugin-rate-limitplugin-reportsplugin-samlplugin-schedulerplugin-sendgridplugin-ssoplugin-subscriptionplugin-thumbplugin-transcoderplugin-twilioplugin-wafplugin-watermark
Guides
- Guide-Production-Deployment
- Guide-SSL-Setup
- Guide-Multi-Tenancy
- Guide-Security-Hardening
- Guide-Monitoring-Setup
- Guide-Backup-Restore
- Guide-Custom-Services
- Guide-Migration-from-v1
Architecture
- Architecture
- Architecture-Guardrails
- Service-Graph
- Compose-Generation
- Nginx-Generation
- Plugin-Architecture
Reference
Machine interface
-
JSON-Output,
--jsonenvelope -
Command-Registry,
nself help --json - Exit-Codes
- error-codes, Error Codes
-
Compat-V15,
NSELF_V15gate
Licensing
Security
Brand
Operations
- operations/release-cascade, Release Cascade
- operations/self-healing, Self-Healing Schema
- operations/redis-tuning, Redis Pool Tuning
- operations/meilisearch-warmup, MeiliSearch Warm-Up
- operations/jwt-rotation, JWT Key Rotation
- operations/windows-wsl2-setup, Windows / WSL2 Setup
- operations/gemini-oauth-reauth, Gemini OAuth Reauth
Contributing
Admin
- USER-ACTION-QUEUE, Pending Admin Actions
All commands (21)
- A: cmd-add · cmd-admin
- B: cmd-backup · cmd-build
- C: cmd-clean · cmd-config
- D: cmd-db · cmd-deploy · cmd-doctor
- E: cmd-exec
- I: cmd-init
- L: cmd-license · cmd-logs
- M: cmd-mcp
- R: cmd-remove · cmd-reset · cmd-restart
- S: cmd-start · cmd-status · cmd-stop
- U: cmd-update