Spec-Zone.ru › Django 4.1

Как обновить 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, рекомендуется очистить кэш после обновления. В противном случае у вас могут возникнуть проблемы, например, если вы кэшируете сериализованные объекты, так как эти объекты не гарантируется, что будут совместимы с pickle между версиями Django. В прошлом наблюдалась несовместимость при кэшировании сериализованных объектов HttpResponse, напрямую или косвенно через декоратор cache_page().

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

Spec-Zone.ru

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