# Django 6.0.7 documentation

# Så här uppgraderar du Django till en nyare version

Upgrading Django to the latest version offers several benefits:

- New features and improvements become available.

- Buggar är åtgärdade.

- Older versions of Django eventually stop receiving security updates (see Versioner som stöds).

- Upgrading with each new release helps keep your code base current and makes future upgrades smoother.

Verktyg för att hjälpa till med versionsuppgraderingar

Django har ett livligt ekosystem. Det finns automatiska uppgraderingshjälpmedel som lyfts fram på sidan Gemenskapens ekosystem.

Här är några saker att tänka på för att göra din uppgraderingsprocess så smidig som möjligt.

## Obligatorisk läsning

Om det är första gången du gör en uppgradering är det bra att läsa guiden om de olika releaseprocesserna.

Efteråt bör du bekanta dig med de ändringar som gjorts i den nya Django-versionen (eller versionerna):

- Läs versionsinformation för varje ”final” utgåva från den som kommer efter din nuvarande Django-version, till och med den version som du planerar att uppgradera till.

- Titta på deprecation timeline för relevanta versioner.

Var särskilt uppmärksam på bakåtkompatibla ändringar för att få en klar uppfattning om vad som krävs för en lyckad uppgradering.

Om du uppgraderar genom mer än en funktionsversion (t.ex. 2.0 till 2.2) är det vanligtvis enklare att uppgradera genom varje funktionsversion stegvis (2.0 till 2.1 till 2.2) än att göra alla ändringar för varje funktionsversion på en gång. För varje funktionsversion ska du använda den senaste patchversionen (t.ex. för 2.1 ska du använda 2.1.15).

Samma stegvisa uppgraderingsmetod rekommenderas när du uppgraderar från en LTS till nästa.

## Beroenden

I de flesta fall kommer det att vara nödvändigt att uppgradera till den senaste versionen av dina Django-relaterade beroenden också. Om Django-versionen nyligen släpptes eller om vissa av dina beroenden inte är väl underhållna, kanske vissa av dina beroenden ännu inte stöder den nya Django-versionen. I dessa fall kan du behöva vänta tills nya versioner av dina beroenden släpps.

## Lösning av varningar om föråldring

Innan du uppgraderar är det en bra idé att lösa eventuella deprecation-varningar som ditt projekt ger upphov till när du använder din nuvarande version av Django. Genom att åtgärda dessa varningar före uppgraderingen säkerställer du att du är informerad om områden i koden som behöver ändras.

I Python är deprecation-varningar tysta som standard. Du måste aktivera dem med hjälp av Pythons kommandoradsalternativ `-Wa` eller miljövariabeln `PYTHONWARNINGS`. Till exempel, för att visa varningar när du kör tester:

/ 

    $ python -Wa manage.py test

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

Om du inte använder Djangos testlöpare kan du också behöva se till att konsolutmatning inte fångas upp, vilket skulle dölja varningar om avskrivning. Till exempel, om du använder pytest:

    $ PYTHONWARNINGS=always pytest tests --capture=no

Lös eventuella varningar om utfasning med din nuvarande version av Django innan du fortsätter uppgraderingsprocessen.

Tredjepartsapplikationer kan använda föråldrade API:er för att stödja flera versioner av Django, så varningar om föråldrade API:er i paket som du har installerat behöver inte nödvändigtvis indikera ett problem. Om ett paket inte stöder den senaste versionen av Django, överväg att lyfta ett problem eller skicka en pull-begäran för det.

## Installation

När du är redo är det dags att installera den nya Django-versionen. Om du använder en `virtuell miljö` och det är en stor uppgradering, kanske du vill konfigurera en ny miljö med alla beroenden först.

Om du installerade Django med pip kan du använda flaggan `--upgrade` eller `-U`:

/ 

    $ python -m pip install -U Django

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

## Testar

När den nya miljön är konfigurerad, kör hela testsviten för din applikation. Återigen är det användbart att slå på deprecation-varningar så att de visas i testutdata (du kan också använda flaggan om du testar din app manuellt med `manage.py runserver`):

/ 

    $ python -Wa manage.py test

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

När du har kört testerna ska du åtgärda eventuella fel. Medan du har versionsinformation färskt i minnet kan det också vara en bra tid att dra nytta av nya funktioner i Django genom att refaktorisera din kod för att eliminera eventuella deprecation-varningar.

If you are upgrading to an alpha, beta, or release candidate, please see our guide on How to test pre-release versions of Django for more specific tips about catching regressions and reporting bugs.

## Utplacering

När du är tillräckligt säker på att din app fungerar med den nya versionen av Django är du redo att gå vidare och deploy ditt uppgraderade Django-projekt.

Om du använder cachelagring som tillhandahålls av Django bör du överväga att rensa din cache efter uppgradering. Annars kan du stöta på problem, till exempel om du cachelagrar picklade objekt eftersom dessa objekt inte garanteras vara pickle-kompatibla mellan Django-versioner. Ett tidigare fall av inkompatibilitet var cachelagring av inlagda `HttpResponse`-objekt, antingen direkt eller indirekt via `cache_page()`-dekoratorn.