-1

我正在尝试通过 Alembic 在 PostgreSQL 中进行模式迁移。

在这个问题之后撤消最后一个alembic迁移

我有 2 个迁移:

revision = '0eb4bd9decb0',down_revision = None
--and 
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 迁移,它按预期工作

我的问题:

如何通过修订 ID 降级 Alembic 迁移?

4

1 回答 1

1

当你跑

alembic upgrade 0eb4bd9decb0
alembic upgrade bf34bf428845

顺便说一句,这和刚才一样

alembic upgrade bf34bf428845

您的数据库将处于修订 bf34bf428845。然后如果你跑

alembic downgrade bf34bf428845

它将无效,因为数据库已经处于修订 bf34bf428845。

如果您想撤消将您带到修订版 bf34bf428845 的更改,您需要降级到bf34bf428845之前的修订版,即

alembic downgrade bf34bf428845-1

或者

alembic downgrade 0eb4bd9decb0
于 2021-07-11T13:04:00.423 回答