📑

Djangoのバージョンをアップデートする時に

に公開

この記事は、Django を安全にアップデートするために「何から順に確認するか」をまとめます。

  • 対象: Django を運用していて、バージョンアップでトラブルを避けたい人
  • この記事で分かること: 読むべきドキュメント、マイナーバージョンごとの上げ方、警告の潰し方
  • 結論: リリースノートと Deprecation を読み、マイナーバージョンごとに上げて、警告が出ない状態にしていくのが安全です
  • 前提: 本文のリンクは 2025/12 時点の 6.0 です(必要なら URL のバージョンを読み替えてください)
  • 限界: 依存パッケージ/プロジェクトの状態で手順は変わるので、最終判断は公式ドキュメントとテスト結果で行ってください

Django のバージョンについて

Django は「feature release(A.B)」と「patch release(A.B.C)」で、更新の意味と影響が変わります。 feature release は約 8 ヶ月ごと、patch release は必要に応じてリリースされます。
また feature release の一部は LTS(長期サポート)になり、通常 3 年間セキュリティ/重大バグ修正が提供されます(概ね 2 年ごとに LTS が出ます。例: 4.2, 5.2, 6.2)。
Supported Versions

現在(2025/12)の最新安定版は 6.0、最新 LTS は 5.2 です。
Django のリリースプロセス

Django のバージョンアップに関するドキュメント

公式にDjango の新しいバージョンへの更新というドキュメントがあります。

リリースノートにてどのような変更が行われてきたかを確認することができます。
Django Deprecation Timelineにて削除された機能を確認することができます。
Django では機能の削除が行われる場合には最低で 1 つのフィーチャーリリース(マイナーバージョン)でそれが非推奨として警告されるようになります。

Django のバージョンアップ時の手順

大まかな手順としてはまず

にて廃止された機能を利用していないかを確認し、それがあれば対応します。

また、念の為一つのマイナーバージョンごとにアップデートを行い、

python -Wa manage.py test
PYTHONWARNINGS=always pytest tests --capture=no

などでテストを実行することで、非推奨機能が利用されていた場合の警告を見ることができます。

チェックリスト(やる順)

やることを最小にすると、次の順番が迷いにくいです。

  1. 対象バージョンの公式ドキュメントを確認します(このページのリンクは 2025/12 時点の 6.0 なので、必要なら URL のバージョンを読み替えてください)
  2. マイナーバージョンごとに、リリースノートと Deprecation を読みます
  3. 非推奨の警告が出る状態でテストを回し、警告を潰します
  4. 依存パッケージの互換性(サポート範囲)を確認します
  5. 本番相当の設定で動かし、ログ/警告/挙動差分を確認します

この順で進めると、破壊的変更や非推奨を見落としにくくなります。

実務メモ(落とし穴・代替案・検証)

落とし穴

  • マイナーバージョンを飛ばすと、原因切り分けが難しくなりやすいです(原則 1 つずつ上げます)
  • 依存パッケージの互換性で詰まりやすいです(Django 本体だけ先に上げません)
  • 警告を見ない運用だと、将来の破壊的変更を見落としやすいです(-Wa などで潰す前提を作ります)
  • 本番と設定が違う環境だけで確認すると、挙動差分に気付きにくいです(本番相当で確認します)

代替案と比較軸

  • 小刻みに上げる: 変更点の把握と切り分けがしやすいです
  • まとめて上げる: 手間は減りますが、詰まったときに戻りにくいです
  • 比較軸: 変更量、依存関係の複雑さ、テストの厚さ、リリース頻度

判断フロー(最短)

  • テストが厚くない/依存が多い: 小刻みに上げます(本稿のチェックリスト)
  • 依存が少なくテストが厚い: まとめてもよいですが、警告が 0 になるまで潰して進めます

検証(最小)

  • 警告を出す設定でテストを回し、警告が 0 になっていることを確認します
  • 本番相当の設定で起動し、ログ/挙動差分がないことを確認します

参考(一次情報)

更新: 2025-12-29(冒頭に対象/結論/前提を追加、チェックリストと参考(一次情報)を追記、落とし穴、代替案、判断フロー、検証観点を追記。リンクとバージョン表記を 2025/12 時点に更新)

Discussion