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

Django部署Heroku遇OperationalError:posts_post表不存在求助

解决Django 4.1部署Heroku后no such table: posts_post错误的方案
  • 在Heroku环境中执行迁移命令
    本地执行迁移不会同步到Heroku服务器,必须直接在Heroku上运行:

    heroku run python manage.py migrate
    

    执行后查看输出日志,确认posts应用的迁移脚本已被成功应用(日志中会显示Applying posts.XXXX... OK)。

  • 确认迁移文件已提交到Git仓库
    检查posts/migrations/目录下的所有迁移文件(包含__init__.py)是否已添加到Git并推送到Heroku:

    git add posts/migrations/
    git commit -m "提交posts应用的迁移文件"
    git push heroku main
    

    若迁移文件未提交,Heroku服务器中没有对应的迁移脚本,执行migrate也无法创建数据表。

  • 验证posts应用已加入INSTALLED_APPS
    打开项目根目录的settings.py,确认posts在INSTALLED_APPS列表内:

    INSTALLED_APPS = [
        # 其他内置/第三方应用
        'posts',
    ]
    

    未添加该应用的话,Django不会识别其模型,迁移过程也不会生成对应的数据表。

  • 检查数据库配置是否正确
    确保settings.py正确读取Heroku提供的数据库链接,避免使用本地SQLite(Heroku不支持SQLite持久化):

    import dj_database_url
    
    DATABASES = {
        'default': dj_database_url.config(default='sqlite:///db.sqlite3')
    }
    

    若手动配置数据库,需确认使用的是Heroku分配的PostgreSQL数据库信息。

  • 重置Heroku数据库(谨慎操作)
    若上述方法均无效,可尝试重置数据库后重新迁移(此操作会清空所有数据,仅适用于测试环境或无重要数据的场景):

    heroku pg:reset DATABASE_URL
    heroku run python manage.py migrate
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:35:36