为什么我总是收到错误根找不到由"1cccee45d6e7"标识的修订版?



我正在尝试启动并运行烧瓶的数据库,当我键入烧瓶数据库迁移-m"用户表"时出现问题。它一直给我一个错误,说:

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

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

(venv) $ flask db init 

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

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

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

(venv) C:sitesfoldermicroblogapp>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'

我正在学习本教程。

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

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

免责声明:以下解决方案并非适用于所有情况。

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

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

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

但是,如果您已经将某些修订提交到源代码管理并应用于其他部署(如其他开发人员计算机或服务器),则可能会产生一些意外后果。基本上,所有环境都需要以这种方式重新初始化,但是,如果您刚刚重新开始,这可能就不适用了。

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

最新更新