Undo last Alembic migration

PythonSqlalchemyAlembic

Python Problem Overview


I created a migration with alembic revision --autogenerate, applied it to my development database with alembic upgrade head, and then realised it wasn't quite what I wanted.

How can I revert the migration so that I can tweak it and try again?

Python Solutions


Solution 1 - Python

Assuming that you only want to go back one revision, use alembic downgrade with a relative migration identifier of -1:

alembic downgrade -1

This will run the downgrade() method of your latest revision and update the alembic_version table to indicate the revision you're now at.

If you need to go back multiple migrations, run

alembic history

to view a list of all the migrations in your project (from newest to oldest), then copy and paste the identifier of the migration you want to go back to:

alembic downgrade 8ac14e223d1e

There's currently no command to delete migrations from your versions directory, so if you want to completely wipe away all trace of your bad migration, you'll need to delete the version file (like 4c009570237e_add_widget_table.py) manually.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMark AmeryView Question on Stackoverflow
Solution 1 - PythonMark AmeryView Answer on Stackoverflow