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

切换SQLite到PostgreSQL后出现django_session不存在错误求助

解决Django切换到PostgreSQL后django_session不存在的问题

这个错误的核心是你的PostgreSQL数据库里还没生成django_session表——这是Django会话系统依赖的核心表,虽然你执行了迁移命令,但可能有几个环节没做对,下面一步步排查解决:

1. 确认INSTALLED_APPS包含会话应用

打开你的settings.py,检查INSTALLED_APPS列表里是否有'django.contrib.sessions'。这个表是由Django自带的会话应用生成的,如果没添加这个应用,migrate命令根本不会去创建它。

如果没有,把它加到列表里,然后重新执行迁移命令。

2. 确保migrate命令是全局执行的

有时候我们会习惯给migrate指定某个业务app(比如python manage.py migrate news),但这样只会迁移指定app的表,Django自带的系统表(包括django_session)不会被处理。

你需要执行不带app名称的迁移命令,让Django处理所有未应用的迁移(包括系统自带的应用):

python manage.py migrate

执行时留意输出,看看是否有sessions相关的迁移被应用。

3. 验证数据库连接的正确性

你的数据库配置里指定的是postr1库,先确认你执行migrate时连接的确实是这个库:

  • 用psql命令登录目标数据库:
    psql -U zorgan postr1
    
  • 登录后执行\dt命令查看所有表,如果看不到django_session,说明迁移确实没在这个库生效。

4. 手动应用会话应用的迁移

如果上面的步骤都没问题,但还是没有django_session表,可以尝试手动指定sessions应用执行迁移:

python manage.py migrate sessions

执行后再用\dt检查数据库,应该就能看到django_session表了。

一般来说,按上面的步骤排查,就能解决这个问题——大概率是迁移命令没全局执行,或者会话应用没在INSTALLED_APPS里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:52:55