问题描述
我正在尝试通过 Alembic 在 Postgresql 中进行架构迁移。
我有 2 次迁移,revision = '0eb4bd9decb0'
、down_revision = None
和
revision = 'bf34bf428845'
,down_revision = '0eb4bd9decb0'
所以我通过以下方式成功地从两个迁移文件运行迁移:-
alembic upgrade 0eb4bd9decb0
alembic upgrade bf34bf428845
现在我在降级这些迁移时遇到问题,即我想使用 revision= 'bf34bf428845'
所以我写
alembic downgrade bf34bf428845
(migration) C:\xampp\htdocs\dbmigration python\migration\db>alembic downgrade bf34bf428845
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
但是如果我运行此代码:-
alembic downgrade -1
它按 Undo last Alembic migration
的预期工作那么如何通过修订 ID 降级 Alembic 迁移?
解决方法
跑步时
alembic upgrade 0eb4bd9decb0
alembic upgrade bf34bf428845
顺便说一下,这和刚才一样
alembic upgrade bf34bf428845
您的数据库将处于修订版 bf34bf428845。那么如果你运行
alembic downgrade bf34bf428845
它不会有任何影响,因为数据库的版本已经是 bf34bf428845。
如果您想撤消使您进入修订版 bf34bf428845 的更改,您需要降级到 之前 bf34bf428845 的修订版,即,
alembic downgrade bf34bf428845-1
或
alembic downgrade 0eb4bd9decb0