Запуск миграции при развертывании приложения django на heroku с кодом

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

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

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

Я добавил «Пользовательский скрипт» в конвейер развертывания кодового корабля после конвейера «heroku», содержащего heroku run python manage.py migrate, но когда совместное использование пытается его выполнить, он терпит неудачу.

Cannot run more than 1 Free size dynos.

сообщение. Я полагаю, это связано с тем, что сервер уже запущен и у меня нет доступных рабочих процессов? (исправьте меня, если я ошибаюсь) РЕДАКТИРОВАТЬ: Я ошибался - у меня был запущен дополнительный процесс (см. ответ)

Есть ли способ включить этап миграции базы данных в конвейер развертывания heroku? Или я что-то не так сделал?


person OBu    schedule 07.06.2016    source источник


Ответы (1)


Найдите здесь ответ: Heroku: невозможно запустить более 1 свободного размера дино

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

Я использовал 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

и после этого моя миграция с помощью специального скрипта кодового корабля работала, как ожидалось.

person OBu    schedule 08.06.2016