使用codeship将django app部署到heroku时运行迁移

时间:2016-06-07 15:09:55

标签: django heroku codeship

我正在尝试为我的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部署管道中包含数据库迁移步骤?或者我做错了什么?

1 个答案:

答案 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

之后我通过代码自定义脚本进行的迁移按预期工作。