Как мне безопасно перейти с Django 1.0.2 на 1.3.1? - PullRequest
1 голос
/ 18 ноября 2011

Будет работать следующее:

  1. Удаление django 1.0.2
  2. Установка django 1.3.1
  3. Запуск «нового» проекта с тем же именем, что и у старого.
  4. Вручную импортируйте все мои старые приложения и т. Д.
  5. Скрестив пальцы, я ничего не убивал.

Предположительно, есть некоторые существенные различия между версиями, так будет ли это работать? ... и есть ли менее болезненный (безопасный) способ сделать это?

Ответы [ 3 ]

4 голосов
/ 18 ноября 2011

Весьма вероятно, что все пойдет не так - в Django было много (хороших!) Изменений со старых 1.0 дней.Вашим первым шагом, вероятно, должно быть чтение примечаний к выпуску для каждой основной версии Django по пути обновления (в частности, к разделам «Обратно несовместимые изменения»), чтобы получить представление о том, какие изменения произошли и что вам нужно изменить.

Вы также должны спланировать сначала обновление в разработке (не в производстве!) - вам почти наверняка потребуется обновить проект в нескольких местах, так что вы захотите сделать это в автономном режиме изатем переместите обновленный код в рабочий после завершения тестирования.

Примечания к выпуску:

https://docs.djangoproject.com/en/dev/releases/1.1/

https://docs.djangoproject.com/en/dev/releases/1.2/

https://docs.djangoproject.com/en/dev/releases/1.3/

1 голос
/ 18 ноября 2011

Есть ли менее болезненный (безопасный) способ сделать это?

Да. Всегда используйте virtualenv для всех ваших [новых] производственных выпусков, начиная с этого . :)

Тогда нет ничего важного в том, чтобы подготовить и запустить промежуточную версию нового экземпляра с другой версией Django (и, возможно, также с более новыми версиями других библиотек python).

Вы можете поддерживать старую версию в рабочем состоянии, пока не будете уверены, что готовы выполнить обновление.

Очевидно, вам нужно будет убедиться, что вы указываете новую версию на другую базу данных и работаете на другом порту во время тестирования. Кроме этого это должно быть красиво и просто.

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

Пара полезных указателей:

1 голос
/ 18 ноября 2011

Во-первых, вы обязательно должны сначала выполнить этот процесс в среде разработки.Создайте дамп своей производственной БД, если вам это нужно, и импортируйте его в свою базу данных разработки.

«Удаление» Django не требуется.Я бы порекомендовал просто переименовать папку django в каталоге вашего сайта на что-то вроде django_old, а затем установить новую версию Django.

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

Если все работает нормально, вы можете повторить процесс на своем рабочем компьютере.Честно говоря, у вас действительно не должно быть много проблем.Django очень редко осуждает что-либо, и когда это происходит, всегда есть предупреждения об устаревании для нескольких версий, прежде чем оно фактически перестает функционировать.Исправьте все предупреждения об устаревании, которые вы получите, как можно скорее.

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