Spec-Zone.ru › Django 4.2

Как обновить Django до новой версии

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

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

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

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

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

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

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

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

Если вы обновляетесь более чем через одну версию функций (например, с 2.0 до 2.2), обычно проще обновляться через каждую версию функций поэтапно (с 2.0 до 2.1, а затем до 2.2), а не вносить все изменения сразу для каждой версии функций. Для каждой версии функций используйте последнюю исправление (например, для 2.1 используйте 2.1.15).

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

Зависимости

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

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

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

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

$ python -Wa manage.py test
...\> py -Wa manage.py test

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

$ PYTHONWARNINGS=always pytest tests --capture=no

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

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

Установка

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

Если вы установили Django с помощью pip, вы можете использовать флаг --upgrade или -U:

$ python -m pip install -U Django
...\> py -m pip install -U Django

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

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

$ python -Wa manage.py test
...\> py -Wa 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/4.2/howto/upgrade-version/

Spec-Zone.ru

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