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

Django应用在Heroku上执行migrate命令未生效该如何处理

Heroku Django 迁移未生效排查解决步骤
  • 优先确认迁移文件已同步到Heroku服务端
    Heroku运行时仅读取你推送至平台的代码,若本地新增的迁移文件未完成commit并push到Heroku关联的代码分支,执行migrate命令时只会调用服务端已有的旧迁移文件,自然不会执行新变更,也不会出现*No migrations to apply.*的提示。你可以运行heroku run ls <你的应用名>/migrations/查看服务端存储的迁移文件列表,和本地文件比对,确认所有迁移文件都已成功上传。
  • 校验数据库连接配置是否正确
    确认Django settings.py中的DATABASES配置没有硬编码本地数据库地址,已正确读取Heroku自动注入的DATABASE_URL环境变量。你可以运行heroku run python manage.py shell进入交互终端,执行以下代码验证当前连接的数据库信息:
from django.conf import settings
print(settings.DATABASES['default'])

对比输出的数据库地址、用户名等信息和Heroku控制台绑定的数据库附加组件信息一致,避免迁移被错误执行到其他数据库实例。

  • 检查迁移执行状态记录
    运行heroku run python manage.py showmigrations查看所有迁移的执行状态,标有[X]的为已执行迁移,标有[ ]的为未执行迁移。你也可以直接连接Heroku数据库,查询django_migrations表的记录,确认迁移是否已经被标记为已执行。
  • 针对指定应用执行迁移
    如果全局migrate未生效,可以尝试指定应用名执行迁移,部分场景下全局迁移会因为依赖问题跳过部分应用的变更:
    heroku run python manage.py migrate <你的应用名>
  • 重新部署后再执行迁移
    Heroku的heroku run命令会启动独立的临时dyno,若存在代码缓存未更新的问题,可以先重新推送一次最新代码再执行迁移:
git add .
git commit -m "补充最新迁移文件"
git push heroku main
heroku run python manage.py migrate

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:30:02