Время от времени эта процедура может быть сложной, но обновление до последней версии Django имеет ряд преимуществ:
Добавление новой функциональности и различных улучшений
Закрытие старых багов
Наконец, устаревающие версии Django со временем перестают получать обновления безопасности. (см. Поддерживаемые версии).
Если вы будете обновлять Django при выходе каждого нового релиза, это сделает процедуру последующих обновлений менее болезненной и сохранит ваш код в актуальном состоянии.
Ниже изложено несколько вещей, призванных сделать обновление настолько мягким, насколько это вообще возможно.
Если это ваше первое обновление, полезно будет прочесть guide on the different release processes.
Впоследствии вы можете ознакомиться с изменениями, которые были сделаны в новых версиях(версии) Django:
Прочтите описание изменений каждого ‘финального’ релиза, начиная с релиза вашей версии Django вплоть до того, на который желаете обновиться.
Взгляните на срок поддержки интересующей вас версии.
Уделите особое внимание обратной совместимости, чтобы получить чёткое представление о том, что необходимо для успешного обновления.
В большинстве случаев необходимо также обновить пакеты, которые связаны с Django. В случае, если версия Django была выпущена недавно или же какие-то из связанных с ним пакетов недостаточно протестированы, некоторые из таких пакетов могут не поддерживаться в новой версии Django. В таком случае вы можете подождать выхода версии, в которой необходимая функциональность будет реализована.
Теперь пора перейти к установке новой версии Django. Если вы работаете с virtualenv и предстоит крупное обновление, можете сначала установить новое окружение со всеми связанными с Django пакетами.
Какие именно шаги вам предстоит сделать, зависит от способа, которым был установлен Django. Удобнее всего воспользоваться утилитой pip с флагом --upgrade или же -U:
$ pip install -U Django
pip автоматически деинсталлирует предыдущую версию Django.
Если вы проводили установку иначе, ознакомьтесь с инструкцией об удалении предыдущей версии Django и обратите внимание на инструкцию по его установке.
После настройки нового виртуального окружения запустите набор тестов, чтобы проверить ваши приложения. В Python 2.7+, устаревшие предупреждения по-умолчанию не выводятся. Полезно включить вывод предупреждений, чтобы отображать такие сообщения при тестировании (также можно протестировать приложение вручную при запуске manage.py runserver):
$ python -Wall manage.py test
После запуска тестов, исправьте неработающие участки кода. Пока описание нового релиза ещё не выветрилось из вашей памяти, используйте этот момент, чтобы протестировать новые возможности Django и переписать код, помеченный в свежем релизе как устаревший.
Когда вы удостоверитесь в том, что ваше приложение работает с новой версией Django, можете двигаться дальше к развёртыванию вашего обновлённого проекта.
Если вы используете систему кэширования, предоставляемую Django, рекомендуется очистить кэш после обновления. В противном случае у вас могут появиться проблемы, например, если вы кэшируете неизменяемые объекты, мы не можем гарантировать, что они будут совместимы с различными версиями Django. К таким моментам можно отнести кэширование объектов HttpResponse как непосредственное, так и посредством декоратора cache_page().
Mar 31, 2016