2016-06-07 3 views
1

Я пытаюсь настроить непрерывный конвейер интеграции для моего проекта python 3.5.1/django 1.9.7.Запуск миграции при развертывании приложения django для heroku с кодовым кодом

Проект работает отлично на heroku, а конвейер для развертывания кодов для heroku работает хорошо, пока моя база данных не изменилась.

Если я хочу выполнить миграцию, я должен сделать это вручную, введя heroku run python manage.py migrate на свой компьютер, которого я бы хотел избежать.

Я добавил "Custom Script" в моем трубопроводе развертывания codeship после "Heroku" -pipeline содержащей heroku run python manage.py migrate, но когда coedship пытается выполнить его, он терпит неудачу с сообщением о

Cannot run more than 1 Free size dynos.

. Я предполагаю, что это потому, что сервер уже запущен и у меня нет рабочих процессов? (Пожалуйста, поправьте меня, если я ошибаюсь) EDIT: Это где я был неправ - я имел дополнительный процесс запуска (см ответа)

Есть ли способ, чтобы включать в себя этап переноса базы данных в развертывании Heroku трубопровод? Или я сделал что-то не так?

ответ

3

Ifound ответ здесь: Heroku: Cannot run more than 1 Free size dynos

Мое предположение о theweb сервер неоспоримым блокирующий дино был неправ, я был процесс зомби (createsuperuser) работает, я не знал о.

Я использовал heroku ps, чтобы показать все текущие операции. Выход был:

=== 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 

, а затем моя миграция через codeship пользовательский сценарий работал, как ожидалось.