为什么我不断收到错误根目录,无法找到由“ 1cccee45d6e7”标识的修订版本?

时间:2019-06-11 08:06:05

标签: python sqlalchemy alembic

我试图启动我的数据库并为flask运行,当我输入flask db migration -m“ users table”时出现问题。它一直给我一个错误,上面写着:

ERROR [root] Error: Can't locate revision identified by '1cccee45d6e7'

我尝试删除迁移文件,然后重新运行代码以在cmd中启动数据库:

(venv) $ flask db init 

哪个工作正常,并在flask应用程序目录中创建了一个新的迁移文件。然后我做了:

(venv) $ flask db migrate -m "users table"

这是我再次遇到问题的地方:

(venv) C:\sitesfolder\microblog\app>flask db migrate
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
ERROR [root] Error: Can't locate revision identified by '1cccee45d6e7'

我正在关注this tutorial

3 个答案:

答案 0 :(得分:0)

免责声明:以下解决方案并不适合每种情况。

通常,这意味着您的数据库与迁移文件不同步。在应用迁移后删除修订文件时,可能会发生这种情况。检查您的数据库,它应该包含一个表,其中包含上一次应用的迁移。如果该版本没有文件,您将收到Can't locate revision...错误。

如果仅是开始迁移,一种可能的解决方案是:

  • 删除所有表和迁移文件
  • 重新初始化您的迁移
  • 从模型中生成新的迁移文件
  • 应用迁移

但是,如果您已经对源代码管理进行了某些修订并应用于其他部署(例如其他开发人员的机器或服务器),则可能会产生某些不良后果。基本上,所有环境都需要以这种方式重新初始化,但是,再次,如果您只是从头开始,那可能不会实现。

答案 1 :(得分:0)

只需根据迁移中的版本文件夹更改数据库中的alembic_version。然后对我有用。

答案 2 :(得分:0)

您可以使用以下命令简单地解决问题。

flask db revision --rev-id 1cccee45d6e7
flask db migrate
flask db upgrade