我正在尝试为我的python 3.5.1 / django 1.9.7项目建立一个连续的集成管道。
该项目在heroku上正常运行,只要我的数据库不变,heroku的代码部署管道就可以正常运行。
如果我想运行迁移,我必须通过在我的计算机上输入heroku run python manage.py migrate
来手动执行此操作,我希望避免这种情况。
我在“heroku”-pipeline包含heroku run python manage.py migrate
之后的代码部署管道中添加了一个“自定义脚本”,但是当coedship尝试执行它时,它失败了
Cannot run more than 1 Free size dynos.
消息。我认为这是因为服务器已经启动并运行,我没有更多的工作进程可用? (如果我错了,请纠正我) 编辑:这是我错的地方 - 我有一个额外的流程正在运行(见答案)
有没有办法在heroku部署管道中包含数据库迁移步骤?或者我做错了什么?
答案 0 :(得分:3)
如果答案在这里:Heroku: Cannot run more than 1 Free size dynos
我对使用阻塞dyno的网络服务器的假设是错误的,我有一个我不知道的僵尸进程(createsuperuser)。
我使用heroku ps
来显示所有正在运行的prcesses。输出是:
=== web (Free): gunicorn my_app.wsgi --log-file - (1)
web.1: idle 2016/06/07 17:09:06 +0200 (~ 13h ago)
=== run: one-off processes (1)
run.7012 (Free): up 2016/06/07 15:19:13 +0200 (~ 15h ago): python manage.py createsuperuser
我通过输入
来杀死了这个过程heroku ps:stop run.7012
之后我通过代码自定义脚本进行的迁移按预期工作。