Rolling back migrations helps you undo changes made to your database. It keeps your data safe when something goes wrong.
You applied a database change that caused errors.
You want to test a previous version of your database schema.
You accidentally ran the wrong migration and need to fix it.
You want to remove a feature that required a database change.
You need to reset your database to a known good state.
Syntax
Supabase
supabase migration rollback [--steps <number>]
The command rolls back the last migration by default.
Use --steps to rollback multiple migrations at once.
Examples
Rolls back the most recent migration.
Supabase
supabase migration rollback
Rolls back the last two migrations.
Supabase
supabase migration rollback --steps 2
Sample Program
This command will undo the last migration applied to your Supabase database.
Supabase
# Run this in your terminal
supabase migration rollback --steps 1
OutputSuccess
Important Notes
Always backup your database before rolling back migrations.
Rolling back migrations may cause data loss if the migration removed or changed tables.
Check migration files to understand what changes will be undone.
Summary
Rolling back migrations helps undo database changes safely.
Use supabase migration rollback with optional --steps to control how many migrations to undo.
Be careful and backup data before rolling back.
Practice
(1/5)
1. What does the command supabase db rollback do?
easy
A. It creates a new migration file.
B. It undoes the last applied database migration.
C. It applies all pending migrations to the database.
D. It deletes the entire database.
Solution
Step 1: Understand the purpose of rollback
Rollback means undoing changes, so this command reverses migrations already applied.
Step 2: Identify the command effect
supabase db rollback specifically undoes the last migration applied to the database.
Final Answer:
It undoes the last applied database migration. -> Option B
Quick Check:
Rollback = undo last migration [OK]
Hint: Rollback means undo last migration applied [OK]
Common Mistakes:
Confusing rollback with applying migrations
Thinking rollback creates new migrations
Assuming rollback deletes the database
2. Which of the following is the correct syntax to rollback the last 3 migrations using Supabase CLI?
easy
A. supabase db rollback --steps 3
B. supabase db rollback -n 3
C. supabase rollback db 3
D. supabase db undo 3
Solution
Step 1: Recall the rollback command syntax
The Supabase CLI uses --steps to specify how many migrations to rollback.
Step 2: Match the correct option
supabase db rollback --steps 3 uses supabase db rollback --steps 3, which is the correct syntax.
Final Answer:
supabase db rollback --steps 3 -> Option A
Quick Check:
Use --steps to rollback multiple migrations [OK]
Hint: Use --steps to specify rollback count [OK]
Common Mistakes:
Using incorrect flags like -n instead of --steps
Wrong command order like 'rollback db'
Using 'undo' instead of 'rollback'
3. Given the following commands run in order: supabase db push supabase db push supabase db rollback --steps 1 What is the state of migrations after these commands?
medium
A. All migrations are rolled back except the last one.
B. No migrations are applied.
C. Both migrations are still applied.
D. Only the first migration is applied.
Solution
Step 1: Apply two migrations
Running supabase db push twice applies two migrations in order.
Step 2: Rollback one migration
The rollback with --steps 1 undoes the last applied migration, leaving the first migration applied.
Final Answer:
Only the first migration is applied. -> Option D
Quick Check:
Rollback 1 step removes last migration applied [OK]
Hint: Rollback with --steps 1 undoes last migration only [OK]
Common Mistakes:
Assuming rollback removes all migrations
Thinking rollback does not affect applied migrations
Confusing push and rollback order
4. You run supabase db rollback --steps 2 but get an error saying no migrations to rollback. What is the most likely cause?
medium
A. There are fewer than 2 migrations applied to rollback.
B. The migrations folder is missing.
C. The database connection is not configured.
D. Rollback command requires a --force flag.
Solution
Step 1: Understand rollback error
The error indicates no migrations to rollback, meaning none or fewer than requested are applied.
Step 2: Identify cause
If fewer than 2 migrations are applied, trying to rollback 2 steps causes this error.
Final Answer:
There are fewer than 2 migrations applied to rollback. -> Option A