Spec-Zone.ru › Django 2.0

Обновление Django до новой версии

Хотя иногда это сложный процесс, обновление до последней версии Django имеет несколько преимуществ:

  • Добавляются новые функции и улучшения.
  • Исправляются ошибки.
  • Старые версии Django в конечном итоге больше не будут получать обновления безопасности. (см. Поддерживаемые версии).
  • Обновление по мере выхода каждой новой версии Django делает будущие обновления менее болезненными, поддерживая актуальность вашего кода.

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

Необходимое чтение

Если вы впервые выполняете обновление, полезно прочитать руководство по различным процессам выпуска.

После этого вы должны ознакомиться с изменениями, внесенными в новую версию Django:

  • Прочитайте примечания к выпуску для каждого «окончательного» выпуска после вашей текущей версии Django до и включая версию, до которой вы планируете обновить.
  • Посмотрите на график устаревания для соответствующих версий.

Обратите особое внимание на изменения, несовместимые с предыдущими версиями, чтобы четко понимать, что потребуется для успешного обновления.

Если вы обновляетесь через более одной функциональной версии (например, с A.B на A.B+2), обычно проще обновляться через каждый функциональный выпуск поэтапно (с A.B на A.B+1, а затем на A.B+2), а не вносить все изменения сразу для каждого функционального выпуска. Для каждого функционального выпуска используйте последний исправительный релиз (A.B.C).

Рекомендуется тот же поэтапный подход к обновлению при переходе с одной LTS-версии на другую.

Зависимости

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

Устранение предупреждений об устаревании

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

В Python предупреждения об устаревании по умолчанию отключены. Необходимо включить их с помощью опции командной строки -Wall или переменной среды PYTHONWARNINGS. Например, чтобы отобразить предупреждения при запуске тестов:

$ python -Wall manage.py test

Если вы не используете Django test runner, вам может также потребоваться убедиться, что вывод консоли не перехватывается, чтобы предупреждения об устаревании не скрывались. Например, если вы используете py.test.

$ PYTHONWARNINGS=all py.test tests --capture=no

Устраните все предупреждения об устаревании с вашей текущей версией Django перед продолжением процесса обновления.

Приложения сторонних разработчиков могут использовать устаревшие API, чтобы поддерживать несколько версий Django, поэтому предупреждения об устаревании в установленных вами пакетах не обязательно указывают на проблему. Если пакет не поддерживает последнюю версию Django, рассмотрите возможность создания проблемы или отправки запроса на вытягивание для него.

Установка

Когда вы будете готовы, пришло время установить новую версию Django. Если вы используете virtualenv и это обновление до новой версии, вам может потребоваться сначала создать новую среду со всеми зависимостями.

Точные шаги, которые вам понадобятся, зависят от вашего процесса установки. Самый удобный способ — использовать pip со флагом --upgrade или -U.

$ pip install -U Django

pip также автоматически удаляет предыдущую версию Django.

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

Тестирование

После создания новой среды запустите полный набор тестов для вашего приложения. Снова полезно включить предупреждения об устаревании, чтобы они отображались в результатах тестирования (вы также можете использовать флаг, если вы вручную тестируете приложение, используя manage.py runserver):

$ python -Wall manage.py test

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

Развертывание

Когда вы достаточно уверены, что ваше приложение работает с новой версией Django, вы готовы перейти к развертыванию вашего обновленного проекта Django.

Если вы используете кэширование, предоставляемое Django, следует очистить кэш после обновления. В противном случае могут возникнуть проблемы, например, если вы кэшируете сериализованные объекты, так как эти объекты не гарантируют совместимость сериализации между версиями Django. В прошлом был случай несовместимости с кэшированием сериализованных HttpResponse объектов, либо напрямую, либо косвенно через декоратор cache_page().

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/2.0/howto/upgrade-version/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API