我正在尝试使用 alembic 来处理我的项目的本地迁移。它第一次工作,但后来我需要删除文件夹并重新启动。(不要问为什么,我只是不得不)我正在关注 this tutorial 并运行命令

python manage.py db init

没关系。但是当我尝试运行时
python manage.py db migrate

我收到此错误:
alembic.util.CommandError: Can't locate revision identified by '31b8ab83c7d'

现在,似乎 alembic 正在寻找不再存在的修订版。反正有没有让alembic忘记那个文件?或者像重新开始比较从 None 到 -> 再次自动生成?

最佳答案

Alembic 将版本历史存储在您的数据库中。因此,它使用存储在数据库中的值来搜索修订。我个人数据库的版本号存储在表 alembic_version 中:

mysql> SELECT * FROM alembic_version;
+-------------+
| version_num |
+-------------+
| c8ad125e063 |
+-------------+
1 row in set (0.00 sec)

提示:如果它是基于 SQL 的数据库,请使用命令 SHOW TABLES 来查看表。

要解决您的问题,只需使用以下命令:
DROP TABLE alembic_version;

或者无论数据库版本表的名称是什么。
然后您需要使用以下命令重新初始化迁移文件夹:
python manage.py db init

然后创建一个新的迁移:
python manage.py db migrate

然后你应该很高兴在 alembic 中进行工作迁移。

关于postgresql - alembic util 命令错误找不到标识符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32311366/

10-15 14:07