当我运行命令时
alembic revision --autogenerate -m "Reconciliation and daily amount tables"
它给了我输出:
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
ERROR [alembic.util.messaging] Can't locate revision identified by '67ad9835cada'
FAILED: Can't locate revision identified by '67ad9835cada'
问题的根源是什么?
问题出在修订版上,该修订版不在修订版脚本目录中。如果以某种方式您丢失了一些修订版 - 您可以使用命令
alembic stamp 67ad9865deca
,其中 67ad9865deca
修订标识符,对于您的数据库来说是修订版头(意味着如果您有更高的修订版并且您不想进行迁移)。或者只是清理数据库中的 tabla alembic_version
,在这种情况下,您将告诉 alembic 您尚未进行任何迁移。
也许有人不专心。在该项目中,多个服务是在不同的容器中提出的。我对将 .env 中的变量从一个服务复制到另一个服务感到失望。复制时,我更改了除数据库名称之外的所有内容,并且我的容器查看了 alembic 的另一个版本