Отправка обновлений Django на рабочий сервер

Мне нужен совет по отправке обновлений Django, особенно обновлений базы данных, с моего сервера разработки на мой рабочий сервер. Я считаю, что обновить скрипты, файлы и тому подобное будет легко — просто скопируйте новые файлы с сервера разработки на рабочий сервер. Тем не менее, обновления базы данных - это то, в чем я не уверен.

Для Django я использовал South во время первоначального создания веб-приложения, чтобы изменить схему базы данных. Если бы у меня был простой на рабочем сервере для обновлений, я мог бы скопировать все файлы на рабочий сервер. Они будут включать и изменять models.py файлы, которые описывают таблицы базы данных. Затем я мог бы выполнить python manage.py schemamigration my_app --auto, а затем python migrate my_app, чтобы обновить базу данных на основе новых файлов/models.py, которые я скопировал.

Это нормальное решение или есть более подходящие способы обновления базы данных с серверов разработки на рабочие серверы?

Твои мысли?

Спасибо


person Garfonzo    schedule 24.09.2011    source источник


Ответы (1)


На самом деле python manage.py schemamigration my_app --auto создаст миграцию только на основе изменений в models.py. Чтобы фактически применить миграцию к базе данных, вам нужно запустить python manage.py migrate my_app. Другой вариант — создать миграции (запустив schemamigration) на сервере разработки, а затем скопировать файлы миграции на рабочий сервер и применить миграции, запустив migrate.

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

person infrared    schedule 24.09.2011
comment
Хорошо, я пропустил вторую часть операции миграции. Я отредактировал свой вопрос, чтобы отразить эту вторую команду. Я пытаюсь понять, подходит ли этот метод для передачи изменений базы данных на рабочий сервер или мне следует искать другой, более стандартный метод обновления схемы базы данных. - person Garfonzo; 25.09.2011