You need to enable JavaScript to run this app. React/Django应用部署至Heroku后本地用户丢失,如何找回或创建管理员账号
优惠活动
大模型
产品
解决方案
定价
更多

React/Django应用部署至Heroku后本地用户丢失,如何找回或创建管理员账号

问题原因
  • Heroku 采用临时文件系统,每次dyno实例重启、或是执行heroku run类命令时,都会初始化一个独立的临时运行环境,所有文件修改都会在命令执行结束后丢失。你使用的Sqlite是单文件型数据库,本身不适合在这类无持久化文件存储的平台使用,你本地的Sqlite数据库文件不会自动同步到部署环境,就算手动上传,后续所有数据修改也会在实例重启后丢失。
  • 你之前执行的makemigrations和migrate命令仅会创建数据库表结构,不会同步本地库中的实际用户数据,且命令执行在独立临时环境中,生成的数据库文件后续也无法被你的正式应用访问到。
解决方案

临时解决:快速创建可用管理员账号

注意:该方法创建的账号会在dyno重启后丢失,仅适合临时调试使用
直接在Heroku运行环境中执行Django创建超级用户命令即可:

heroku run python manage.py createsuperuser

按照提示输入用户名、邮箱、密码,完成后直接用该账号登录即可。

长期解决:更换持久化数据库实现数据同步

要彻底解决数据不持久、本地账号无法同步的问题,需要将Sqlite替换为Heroku提供的PostgreSQL持久化数据库服务:

  • 开通Heroku Postgres附加组件,Django会自动识别平台注入的DATABASE_URL环境变量,无需大量修改配置即可适配
  • 本地端执行python manage.py dumpdata > data.json,将本地数据库的所有用户及其他数据导出为json格式文件
  • 重新部署应用后执行heroku run python manage.py loaddata data.json,即可将本地原有账号等数据同步到线上持久化数据库中,后续所有数据修改都会永久存储,不会因为实例重启丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 13:39:02