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

删除SQLite3数据库后执行Django迁移仍报core_item表不存在错误求助

解决Django删除SQLite数据库后migrate仍提示表不存在的问题

我来帮你排查这个问题,这种情况我之前处理过,大概率是以下几个原因导致的,你可以逐一尝试:

可能的解决方案:

  • 确认迁移文件是否正确生成
    检查core/migrations/目录下是否存在对应Item模型的迁移文件(比如0001_initial.py)。如果没有,先确保core/models.py中确实定义了Item模型,然后运行python manage.py makemigrations core明确指定app生成迁移文件。

  • 重新执行迁移操作
    运行python manage.py migrate时,留意控制台是否有core应用的迁移成功日志(比如Applying core.0001_initial... OK)。如果没有看到,先回退core应用的所有迁移:

    python manage.py migrate core zero
    

    然后重新应用迁移:

    python manage.py migrate core
    
  • 验证数据库文件是否重新生成
    删除旧的db.sqlite3后,执行migrate应该会自动生成新的数据库文件。去项目根目录查看是否有新的db.sqlite3,如果没有,检查settings.py中的DATABASES配置,确认NAME对应的路径是否正确,同时确保当前用户有创建文件的权限。

  • 检查视图是否提前触发数据库查询
    从你的回溯信息来看,错误出在HomeView的get_context_data方法中。如果你的视图在模块导入阶段(而非请求处理时)就执行了数据库查询(比如在类定义里直接赋值queryset = Item.objects.all()并提前求值),会导致migrate还未创建表就触发查询。建议改用get_queryset方法返回查询集,确保查询逻辑只在请求处理时执行。

  • 清除缓存并重启服务
    尝试清除Django缓存:

    python manage.py clearcache
    

    然后完全关闭开发服务器,再重新启动python manage.py runserver。


原始问题及回溯信息:

我希望清理数据库并重新开始,因此删除了SQLite3数据库文件。删除后我执行了python manage.py makemigrations和python manage.py migrate命令,但始终收到错误:OperationalError at / no such table: core_item。我不清楚原因,现将回溯信息附上:

Traceback (most recent call last):
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\views\generic\base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
return handler(request, *args, **kwargs)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\views\generic\list.py", line 157, in get
context = self.get_context_data()
File "C:\Users\User\Desktop\Projectz 4.3\core\views.py", line 82, in get_context_data
context = super(HomeView, self).get_context_data(**kwargs)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\views\generic\list.py", line 119, in get_context_data
paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\views\generic\list.py", line 69, in paginate_queryset
page = paginator.page(page_number)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\core\paginator.py", line 70, in page
number = self.validate_number(number)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\core\paginator.py", line 48, in validate_number
if number > self.num_pages:
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\utils\functional.py", line 80, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\core\paginator.py", line 97, in num_pages
if self.count == 0 and not self.allow_empty_first_page:
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\utils\functional.py", line 80, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\core\paginator.py", line 91, in count
return c()
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\models\query.py", line 392, in count
return self.query.get_count(using=self.db)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\models\sql\query.py", line 504, in get_count
number = obj.get_aggregation(using, ['__count'])['__count']
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\models\sql\query.py", line 489, in get_aggregation
result = compiler.execute_sql(SINGLE)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1097, in execute_sql
cursor.execute(sql, params)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\debug_toolbar\panels\sql\tracking.py", line 176, in execute
return self._record(self.cursor.execute, sql, params)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\debug_toolbar\panels\sql\tracking.py", line 117, in _record
return method(sql, params)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\backends\utils.py", line 99, in execute
return super().execute(sql, params)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\backends\utils.py", line 67, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\User\Desktop\Projectz 4.3\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: core_item
[08/Aug/2020 22:04:04] "GET / HTTP/1.1" 500 211611

感谢您的帮助!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 19:53:10