You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Django应用出现django.db.utils.OperationalError不支持的文件格式错误

问题定位

首先你新增SlugField的操作确实和本次报错无关,报错分为两个独立部分:

警告说明

  • 警告base.Post.tags: (fields.W340) null has no effect on ManyToManyField不影响服务启动,只是你给多对多字段tags设置了null=True参数,多对多字段通过独立中间表存储关联关系,null参数对其无效,后续删除该参数即可。

核心错误原因

sqlite3.OperationalError: unsupported file format不属于Django bug,是你当前使用的SQLite数据库文件(默认路径为项目根目录下的db.sqlite3)无法被读取,常见触发原因:

  • 数据库文件被异常修改:比如用文本编辑器打开误存、跨版本迁移SQLite文件(高版本生成的数据库文件无法被低版本SQLite引擎读取)
  • 项目运行时强制中断,导致数据库文件写入不完整损坏
  • 数据库文件被其他进程锁定占用,读取失败
修复方案

无需保留历史数据(推荐测试环境使用)

直接删除项目根目录下的db.sqlite3文件,再删除所有app的migrations目录中除__init__.py之外的所有文件,依次执行以下命令:

python3 manage.py makemigrations
python3 manage.py migrate

执行完成后重新启动服务即可。

需要保留历史数据

先备份原db.sqlite3文件,再使用SQLite自带工具修复:

  1. 先查看当前SQLite版本,执行sqlite3 --version,如果版本过低先升级SQLite到生成数据库文件对应的版本
  2. 执行修复命令:
# 导出有效数据
sqlite3 db.sqlite3 .recover > temp.sql
# 备份原损坏文件
mv db.sqlite3 db.sqlite3.bak
# 重建正常数据库文件
sqlite3 db.sqlite3 < temp.sql

修复完成后重新启动服务即可。

内容的提问来源于stack exchange,提问作者Cyebukayire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:15:03