Выдвижение обновлений Django на рабочий сервер - PullRequest
2 голосов
/ 25 сентября 2011

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

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

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

Ваши мысли?

Спасибо

1 Ответ

1 голос
/ 25 сентября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...