flask: flask db报错:KeyError: '6590ba2c0c5d'

一,报错信息

  File "/data/python/flask/panda-sys/venv/lib/python3.10/site-packages/alembic/script/revision.py", line 768, in _resolve_revision_number
    self._revision_map
  File "/data/python/flask/panda-sys/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 1145, in __get__
    obj.__dict__[self.__name__] = result = self.fget(obj)
  File "/data/python/flask/panda-sys/venv/lib/python3.10/site-packages/alembic/script/revision.py", line 245, in _revision_map
    down_revision = map_[downrev]
KeyError: '6590ba2c0c5d'

二,原因:

核心原因:你的 Alembic 迁移脚本版本链断裂了。
当前数据库或某个迁移文件依赖版本号 c259d6320de6
但在你的 migrations/versions/ 文件夹中找不到对应的脚本文件(提示中的:Revision c259d6320de6 ... is not present)。

三,解决 :

找到包含错误版本id的文件:

$ grep 6590ba2c migrations/versions/*
migrations/versions/d40be757d0e1_add_local_cities_table_and_switch_fk_.py:Revises: 6590ba2c0c5d
migrations/versions/d40be757d0e1_add_local_cities_table_and_switch_fk_.py:down_revision = '6590ba2c0c5d'

编辑文件,

# revision identifiers, used by Alembic.
revision = 'd40be757d0e1'
down_revision = '6590ba2c0c5d'
branch_labels = None
depends_on = None

修改报错的id'6590ba2c0c5d'为None:

效果如下:

# revision identifiers, used by Alembic.
revision = 'd40be757d0e1'
down_revision = None
branch_labels = None
depends_on = None

 

posted @ 2026-06-18 10:06  刘宏缔的架构森林  阅读(6)  评论(0)    收藏  举报