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

部署Django API到Elastic Beanstalk后数据库无数据问题求助

排查思路

1. 确认迁移文件是否完整部署

  • 登录EB环境对应的EC2实例,进入项目目录,检查migrations文件夹里的文件是否和本地开发环境完全一致,有没有遗漏初始迁移或后续的迁移文件
  • 在实例里执行python manage.py showmigrations,对比本地输出的迁移状态,看服务器上的迁移是否都被标记为[X]已应用

2. 验证数据库连接的真实性

  • 在EC2实例中运行python manage.py dbshell,进入数据库后执行SELECT current_database();,确认连接的数据库是否是EB关联的那个RDS实例
  • 核对settings.py里的数据库配置,同时检查EB控制台的环境变量,看是否有环境变量覆盖了NAME、USER、HOST等参数,导致实际连接的是其他数据库

3. 检查迁移执行的上下文配置

  • 翻EB的部署日志,找到执行迁移命令的完整记录,确认是否指定了正确的生产环境配置文件(比如有没有加--settings=your_project.settings.production),避免误用到本地开发的settings
  • 确认RDS实例的数据库用户权限,是否具备创建表、修改表结构的权限,比如是否给用户分配了ALL PRIVILEGES或者必要的DDL权限

4. 排查迁移标记异常

  • 查看数据库里的django_migrations表,对比其中的迁移记录和本地的迁移文件名,看是否存在记录存在但实际数据库没有对应表的情况
  • 尝试执行python manage.py migrate --fake-initial,修复可能存在的初始迁移被错误标记为已应用的问题

5. 检查初始数据填充逻辑

  • 如果项目依赖初始数据(比如fixture文件或迁移后的信号触发),确认部署脚本里是否添加了python manage.py loaddata your_fixture.json这类命令
  • 检查应用的apps.py中ready()方法的逻辑,有没有只在本地环境执行的条件判断,导致生产环境没触发数据填充

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:03:19