如何实现Git托管的Django应用每周自动部署到Heroku并执行数据库迁移?
基础实现Heroku Django应用每周自动化发布方案
一、前置准备
- 本地安装Heroku CLI并完成登录(执行
heroku login) - 确认Git仓库已与目标Heroku应用关联(执行
heroku git:remote -a 你的应用名称) - 从Heroku账户设置中生成API密钥,用于自动化场景下的无交互认证
二、核心自动化脚本(Shell示例)
编写一个Shell脚本,整合代码部署与数据库迁移操作,等效于控制台的"Deploy Branch"功能:
#!/bin/bash # 替换为你的Heroku应用名称 APP_NAME="your-heroku-app-name" # 1. 拉取Git仓库最新代码(按需调整分支,比如main/master) git pull origin main # 2. 推送代码到Heroku触发部署 git push heroku main # 3. 远程执行数据库迁移命令 heroku run python3 manage.py migrate --app $APP_NAME
三、解决CLI无交互登录问题
若之前CLI执行失败是因为需要手动登录验证,可通过环境变量注入API密钥实现无交互操作:
# 在脚本开头添加,替换为你的Heroku API密钥(建议存在自动化工具的环境变量中,不要硬编码) export HEROKU_API_KEY="your-heroku-api-key"
四、配置每周定时触发
根据现有自动化环境选择对应方案:
- Linux Crontab:执行
crontab -e编辑定时任务,添加以下配置(示例为每周日凌晨2点执行):0 2 * * 0 /path/to/your/deploy-script.sh >> /var/log/heroku-deploy.log 2>&1 - 现有自动化脚本集成:将上述Shell脚本的核心命令,直接嵌入你当前Oracle APEX产品的每周发布脚本中即可
五、验证步骤
- 手动执行脚本,确认代码推送、应用部署、数据库迁移全流程无报错
- 通过
heroku logs --app $APP_NAME --tail查看应用日志,验证部署与迁移结果
内容的提问来源于stack exchange,提问作者Toby Smith
相关产品推荐
相关产品推荐

