Spec-Zone.ru › Django 3.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, рассмотрите возможность создания проблемы или отправки запроса на добавление pull.

Установка

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

Spec-Zone.ru

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