部署至Heroku遇ProgrammingError:relation does not exist问题求助
解决Heroku上Django应用表不存在的迁移问题
1. 确认迁移文件已提交到Heroku
- 检查本地
tables/migrations/目录,确保有新生成的迁移文件(如0001_initial.py) - 将这些文件提交并推送到Heroku:
git add tables/migrations/ git commit -m "提交tables应用的新迁移文件" git push heroku main
2. 清除Heroku数据库中的旧迁移记录
Heroku的django_migrations表可能已经记录了tables应用的迁移状态,但实际表未创建,需要手动清除:
- 连接到Heroku数据库:
heroku pg:psql - 执行SQL命令删除
tables应用的迁移记录:DELETE FROM django_migrations WHERE app = 'tables'; - 退出数据库:
\q - 重新执行迁移:
heroku run python manage.py migrate
3. 验证数据库配置
- 确认应用使用的是Heroku的PostgreSQL数据库,查看环境变量:
确保该变量指向Heroku提供的PostgreSQL地址,而非本地数据库。heroku config:get DATABASE_URL
4. 重置数据库(终极方案,会清空所有数据)
如果以上步骤都无效,可重置数据库后重新初始化:
heroku pg:reset DATABASE_URL heroku run python manage.py migrate
内容的提问来源于stack exchange,提问作者LadisPavel
相关产品推荐
相关产品推荐

