Spec-Zone.ru › Django 4.0

Как обновить 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, вам может потребоваться убедиться, что вывод консоли не перехватывается, что скрыло бы предупреждения об устаревании. Например, если вы используете pytest:

$ PYTHONWARNINGS=always pytest tests --capture=no

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

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

Установка

Когда вы будете готовы, пришло время установить новую версию 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.0/howto/upgrade-version/

Spec-Zone.ru

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