{"title":"Mise à jour de Django à une version plus récente","version":"1.9","locale":"fr","docname":"howto/upgrade-version","url":"/fr/1.9/howto/upgrade-version/","canonical":"https://djangodocs.dev/fr/1.9/howto/upgrade-version/","summary":"Même si le processus peut être parfois un peu complexe, la mise à jour de Django à sa dernière version présente plusieurs avantages : De nouvelles fonctionnalités…","html":"<h1>Mise à jour de Django à une version plus récente<a class=\"heading-anchor\" href=\"#upgrading-django-to-a-newer-version\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Même si le processus peut être parfois un peu complexe, la mise à jour de Django à sa dernière version présente plusieurs avantages :</p>\n<ul class=\"simple\">\n<li><p>De nouvelles fonctionnalités et améliorations ont été ajoutées.</p></li>\n<li><p>Des bogues ont été corrigés.</p></li>\n<li><p>Les versions plus anciennes de Django ne reçoivent plus de mises à jour de sécurité après un certain temps (voir <a class=\"reference internal\" href=\"/fr/1.9/internals/release-process/#backwards-compatibility-policy\"><span class=\"std std-ref\">Supported versions</span></a>).</p></li>\n<li><p>En mettant à jour Django lors de chaque nouvelle publication, vous vous facilitez le travail sur les mises à jour suivantes car votre code reste toujours à jour.</p></li>\n</ul>\n<p>Voici quelques éléments à considérer pour rendre le processus de migration aussi agréable que possible.</p>\n<section id=\"required-reading\">\n<h2>Lecture conseillée<a class=\"heading-anchor\" href=\"#required-reading\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>S’il s’agit de votre première mise à jour, il est utile de lire le <a class=\"reference internal\" href=\"/fr/1.9/internals/release-process/\"><span class=\"doc\">guide sur les différents processus de publication</span></a>.</p>\n<p>Après cela, nous vous suggérons de vous familiariser avec les modifications qui ont été apportées dans la nouvelle version de Django :</p>\n<ul class=\"simple\">\n<li><p>Lisez les <a class=\"reference internal\" href=\"/fr/1.9/releases/\"><span class=\"doc\">notes de publication</span></a> de chaque version « finale » suivant votre version actuelle de Django, jusqu’à la version vers laquelle vous pensez effectuer la mise à jour.</p></li>\n<li><p>Examinez la <a class=\"reference internal\" href=\"/fr/1.9/internals/deprecation/\"><span class=\"doc\">planification d’obsolescence</span></a> pour les versions concernées.</p></li>\n</ul>\n<p>Prêtez une attention particulière aux modifications non rétrocompatibles pour avoir une bonne vision de ce qui sera nécessaire pour une mise à jour réussie.</p>\n</section>\n<section id=\"dependencies\">\n<h2>Dépendances<a class=\"heading-anchor\" href=\"#dependencies\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dans la plupart des cas, il sera aussi nécessaire de mettre à jour à la dernière version des dépendances Django. Si la version de Django a été publiée récemment ou si certaines de vos dépendances ne sont pas bien maintenues, il est possible que certaines dépendances ne prennent pas encore en charge la nouvelle version de Django. Dans ce cas, il se peut que vous deviez patienter jusqu’à ce que de nouvelles versions de vos dépendances aient été publiées.</p>\n</section>\n<section id=\"resolving-deprecation-warnings\">\n<h2>Resolving deprecation warnings<a class=\"heading-anchor\" href=\"#resolving-deprecation-warnings\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Before upgrading, it’s a good idea to resolve any deprecation warnings raised\nby your project while using your current version of Django. Fixing these\nwarnings before upgrading ensures that you’re informed about areas of the code\nthat need altering.</p>\n<p>In Python, deprecation warnings are silenced by default. You must turn them on\nusing the <code class=\"docutils literal notranslate\"><span class=\"pre\">-Wall</span></code> Python command line option or the <span class=\"target\" id=\"index-0\"></span><a class=\"reference external\" href=\"https://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS\" title=\"(disponible dans Python v3.14)\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">PYTHONWARNINGS</span></code></a>\nenvironment variable. For example, to show warnings while running tests:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-Wall<span class=\"w\"> </span>manage.py<span class=\"w\"> </span><span class=\"nb\">test</span>\n</code></pre></div>\n<p>If you’re not using the Django test runner, you may need to also ensure that\nany console output is not captured which would hide deprecation warnings. For\nexample, if you use py.test:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span><span class=\"nv\">PYTHONWARNINGS</span><span class=\"o\">=</span>all<span class=\"w\"> </span>py.test<span class=\"w\"> </span>tests<span class=\"w\"> </span>--capture<span class=\"o\">=</span>no\n</code></pre></div>\n<p>Resolve any deprecation warnings with your current version of Django before\ncontinuing the upgrade process.</p>\n<p>Third party applications might use deprecated APIs in order to support multiple\nversions of Django, so deprecation warnings in packages you’ve installed don’t\nnecessarily indicate a problem. If a package doesn’t support the latest version\nof Django, consider raising an issue or sending a pull request for it.</p>\n</section>\n<section id=\"installation\">\n<h2>Installation<a class=\"heading-anchor\" href=\"#installation\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Quand vous êtes prêt, c’est le moment d”<a class=\"reference internal\" href=\"/fr/1.9/topics/install/\"><span class=\"doc\">installer la nouvelle version de Django</span></a>. Si vous utilisez <a class=\"reference external\" href=\"http://www.virtualenv.org/\">virtualenv</a> et qu’il s’agit d’une mise à jour majeure, il peut être souhaitable de créer d’abord un nouvel environnement contenant toutes les dépendances.</p>\n<p>Les étapes précises à suivre dépendent du processus d’installation. La façon la plus pratique est d’utiliser <a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a> avec l’option <code class=\"docutils literal notranslate\"><span class=\"pre\">--upgrade</span></code> ou <code class=\"docutils literal notranslate\"><span class=\"pre\">-U</span></code>:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-U<span class=\"w\"> </span>Django\n</code></pre></div>\n<p><a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a> désinstalle aussi automatiquement la version précédente de Django.</p>\n<p>Si vous utilisez un autre processus d’installation, vous devrez certainement <a class=\"reference internal\" href=\"/fr/1.9/topics/install/#removing-old-versions-of-django\"><span class=\"std std-ref\">désinstaller manuellement l’ancienne version de Django</span></a> ; consultez alors les instructions d’installations complètes.</p>\n</section>\n<section id=\"testing\">\n<h2>Tests<a class=\"heading-anchor\" href=\"#testing\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>When the new environment is set up, <a class=\"reference internal\" href=\"/fr/1.9/topics/testing/overview/\"><span class=\"doc\">run the full test suite</span></a> for your application. Again, it’s useful to turn\non deprecation warnings on so they’re shown in the test output (you can also\nuse the flag if you test your app manually using <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">runserver</span></code>):</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-Wall<span class=\"w\"> </span>manage.py<span class=\"w\"> </span><span class=\"nb\">test</span>\n</code></pre></div>\n<p>Après avoir exécuté les tests, corrigez les éventuelles erreurs. Un conseil : profitez du fait que les notes de publication sont encore fraîches dans votre mémoire pour mettre à jour votre code en tirant avantage des nouvelles fonctionnalités de Django et en éliminant ainsi d’éventuels avertissements d’obsolescence.</p>\n</section>\n<section id=\"deployment\">\n<h2>Déploiement<a class=\"heading-anchor\" href=\"#deployment\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Si vous êtes suffisamment confiant dans le bon fonctionnement de votre application avec la nouvelle version de Django, vous êtes prêt à aller de l’avant et à <a class=\"reference internal\" href=\"/fr/1.9/howto/deployment/\"><span class=\"doc\">déployer</span></a> votre projet Django mis à jour.</p>\n<p>Si vous utilisez de la mémoire tampon (cache) fournie par Django, il est conseillé de vider cette mémoire après la mise à jour. Sinon, des problèmes peuvent apparaître. Par exemple, si des objets bruts (« pickled ») sont en mémoire tampon, il n’est pas garanti que ces objets puissent être reconstruits, car ce format brut n’est pas toujours compatible d’une version de Django à une autre. Un problème d’incompatibilité connu du passé concernait les objets bruts <a class=\"reference internal\" href=\"/fr/1.9/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> en mémoire tampon, directement ou indirectement via le décorateur <a class=\"reference internal\" href=\"/fr/1.9/topics/cache/#django.views.decorators.cache.cache_page\" title=\"django.views.decorators.cache.cache_page\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">cache_page()</span></code></a>.</p>\n</section>","rootId":"upgrading-django-to-a-newer-version","toc":[{"title":"Lecture conseillée","anchor":"required-reading","children":[]},{"title":"Dépendances","anchor":"dependencies","children":[]},{"title":"Resolving deprecation warnings","anchor":"resolving-deprecation-warnings","children":[]},{"title":"Installation","anchor":"installation","children":[]},{"title":"Tests","anchor":"testing","children":[]},{"title":"Déploiement","anchor":"deployment","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Guides pratiques","url":"/fr/1.9/howto/"}],"prev":{"docname":"howto/deployment/checklist","title":"Liste de contrôle de déploiement","url":"/fr/1.9/howto/deployment/checklist/"},"next":{"docname":"howto/error-reporting","title":"Signalement d’erreurs","url":"/fr/1.9/howto/error-reporting/"},"formats":{"html":"/fr/1.9/howto/upgrade-version/","markdown":"/fr/1.9/howto/upgrade-version.md","json":"/fr/1.9/howto/upgrade-version.json"},"source":"https://github.com/django/django/blob/stable/1.9.x/docs/howto/upgrade-version.txt","official":"https://docs.djangoproject.com/fr/1.9/howto/upgrade-version/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","fr","ja","id","pt-br","es"]}