Django部署Heroku时migrate执行成功但仍提示未应用迁移
问题描述
- 执行
heroku run python/python3 manage.py migrate后,系统提示迁移已成功应用:
- 但执行
heroku run python manage.py createsuperuser时,却出现*'unapplied migrations'*错误:
已调试近一小时,问题仍未解决,急需相关解决方案。
解决方案
- 先检查迁移状态:执行
heroku run python manage.py showmigrations,确认哪些迁移被标记为未应用。 - 尝试强制同步迁移状态:运行
heroku run python manage.py migrate --fake,将所有迁移标记为已应用,无需实际执行迁移操作。 - 若fake命令无效,可尝试
heroku run python manage.py migrate --fake-initial(适用于首次初始化数据库的场景)。 - 重启Heroku dyno:执行
heroku restart,排除dyno与数据库状态不同步的问题,之后再尝试创建超级用户。 - 确认本地迁移文件与Heroku一致:本地执行
python manage.py makemigrations生成未提交的迁移,提交到Git后重新部署git push heroku main,再重新运行迁移。 - 若明确未应用的迁移所属应用,可单独执行
heroku run python manage.py migrate <app_name>(替换<app_name>为对应应用名)。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

