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

Django dumpdata仅导出auth.permission与contenttypes数据,求解决方案

解决Django dumpdata无业务数据的问题

常见原因及修复步骤

1. 确认应用名称是否正确

  • dumpdata指定应用时,必须用INSTALLED_APPS里注册的精确名称,不能随便用文件夹名。先去settings.dev里核对INSTALLED_APPS,确认fund和user_account的注册名(比如有没有写成apps.fund这种完整路径)。
  • 执行命令时用完整注册名,比如:
    ./manage.py dumpdata --indent=4 --settings=app.settings.dev apps.fund apps.user_account > data3.json
    

2. 检查数据库连接是否正确

  • 先确认dumpdata用的settings确实连到了有数据的开发库:
    1. 打开settings.dev的DATABASES配置,核对数据库名、用户名、密码和本地正在用的是否一致。
    2. 进shell手动查数据验证:
      ./manage.py shell --settings=app.settings.dev
      
      然后输入:
      from fund.models import 你的业务模型类
      print(你的业务模型类.objects.all())
      
      如果查不到数据,说明当前settings连的是空库,赶紧修正DATABASES配置。

3. 排除模型未被正确识别的情况

  • 检查fund和user_account的apps.py,确保name属性和INSTALLED_APPS里的名称匹配:
    比如fund/apps.py:
    from django.apps import AppConfig
    
    class FundConfig(AppConfig):
        default_auto_field = 'django.db.models.BigAutoField'
        name = 'fund'  # 必须和INSTALLED_APPS里的名称完全一致
    
  • 还要确认模型的Meta类没设置managed = False,这种模型dumpdata不会导出。

4. 处理外键关联问题

  • 如果业务模型依赖其他应用的模型(比如User),dumpdata时要把关联模型也加上,否则可能导出空数据。比如:
    ./manage.py dumpdata --indent=4 --settings=app.settings.dev auth.user fund user_account > data3.json
    

5. Heroku loaddata的正确操作

  • 导出后先打开data3.json确认有业务数据,再上传到Heroku执行:
    1. 把本地文件传到Heroku临时存储:
      heroku local:push data3.json /tmp/data3.json
      
    2. 执行loaddata:
      heroku run python manage.py loaddata /tmp/data3.json --settings=app.settings.prod
      
    3. 提前确保生产环境已经完成数据库迁移:
      heroku run python manage.py migrate --settings=app.settings.prod
      

6. 直接用Postgres备份恢复(备选方案)

如果dumpdata始终有问题,跳过Django工具,直接用Postgres原生备份:

  1. 导出本地数据库:
    pg_dump -d 你的开发数据库名 -U 用户名 > local_dump.sql
    
  2. 获取Heroku数据库连接信息:
    heroku pg:credentials:url DATABASE_URL
    
  3. 把本地备份导入Heroku:
    psql 你的Heroku数据库URL < local_dump.sql
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:10:33