web-dev-qa-db-fra.com

Annuler la dernière migration d'Alembic

J'ai créé une migration avec alembic revision --autogenerate, l’a appliqué à ma base de développement avec alembic upgrade head, puis j'ai réalisé que ce n'était pas vraiment ce que je voulais.

Comment puis-je annuler la migration afin de pouvoir la modifier et essayer à nouveau?

23
Mark Amery

En supposant que vous souhaitiez uniquement revenir en arrière une révision, utilisez alembic downgrade avec un relatif identifiant de migration sur -1:

alembic downgrade -1

Ceci exécutera la méthode downgrade() de votre dernière révision et mettra à jour la table de révision pour indiquer la révision à laquelle vous vous trouvez.

Si vous devez revenir plusieurs migrations en arrière, exécutez

alembic history

pour afficher une liste de toutes les migrations de votre projet (de la plus récente à la plus ancienne), puis copiez et collez l'identificateur de la migration sur laquelle vous souhaitez revenir:

alembic downgrade 8ac14e223d1e

Il n'y a actuellement aucune commande pour supprimer les migrations de votre répertoire de versions, donc si vous voulez effacer complètement toute trace de votre mauvaise migration, vous devrez supprimez le fichier de version (comme 4c009570237e_add_widget_table.py) manuellement.

36
Mark Amery