3

Для нового приложения, использующего Django 1.6, я пытаюсь создать run.sh, который будет запускать исходные команды на Bluemix.Использование южных миграций с IBM Bluemix

Я нашел ответ here, что дает файл run.sh для встроеных миграций, которая поддерживается в Django 1.7+

#!/bin/bash 

if [ -z "$VCAP_APP_PORT" ]; 
then SERVER_PORT=80; 
else SERVER_PORT="$VCAP_APP_PORT"; 
fi 

echo [$0] port is------------------- $SERVER_PORT 

python manage.py makemigrations 
python manage.py migrate 

echo "from django.contrib.auth.models import User; User.objects.create_superuser(username='username',password='password',email='[email protected]')" | python manage.py shell 

echo [$0] Starting Django Server... 
python manage.py runserver --noreload 0.0.0.0:$SERVER_PORT 

Есть идемпотентный способ запуска эквивалентных команд (schemamigration --auto, migrate) в Юге?

+0

Что вы подразумеваете под управлением команд на Юге? –

+0

Проверьте пример приложения https://github.com/fe01134/djangobluemix. –

+0

Я имею в виду южные эквиваленты makemigrations, migrate и т. Д. Пример приложения, к которому вы привязаны, только делает syncdb, и я создал проблему там https://github.com/fe01134/djangobluemix/issues/1, предлагая добавить вышеуказанный код для Django 1.7+, но я использую Django 1.6. – Pranab

ответ

0

Я бы настоятельно советовал создавать ваши миграции на производстве. Вы должны создать их в своей локальной среде разработки и протестировать их, прежде чем совершать их вместе с соответствующими изменениями в вашей кодовой базе.

Миграции записываются в файлы python в папке/migrations /. Вы должны перенести эти файлы в свой репозиторий и направить их на Bluemix (или иным образом скопировать их). Таким образом, manage.py schemamigration следует запускать только в процессе разработки и претворять в жизнь/перетаскивать, а затем выполнить миграцию manage.py можно безопасно запускать там, где вы развертываете свой проект.

+0

Можно ли использовать комментарий @knbk вот так? Это правильный ответ, как я понимаю. Просто не уверен, что протокол принимает ваш ответ, который по сути является лишь чьим-то комментарием. – Pranab

+0

@Pranab вы можете принять ответ и пометить вопрос как разрешенный? –

Смежные вопросы