{"title":"Atualizando o Django para uma nova versão","version":"1.9","locale":"pt-br","docname":"howto/upgrade-version","url":"/pt-br/1.9/howto/upgrade-version/","canonical":"https://djangodocs.dev/pt-br/1.9/howto/upgrade-version/","summary":"Enquanto que isso pode ser as vezes um processo complexo, atualizar a versão do Django tem muitos benefícios: Novas características e melhorias são adicionadas.…","html":"<h1>Atualizando o Django para uma nova versão<a class=\"heading-anchor\" href=\"#upgrading-django-to-a-newer-version\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Enquanto que isso pode ser as vezes um processo complexo, atualizar a versão do Django tem muitos benefícios:</p>\n<ul class=\"simple\">\n<li><p>Novas características e melhorias são adicionadas.</p></li>\n<li><p>Erros são ajustados.</p></li>\n<li><p>Antigas versões do Django eventualmente não irão receber atualizações de segurança.  (veja <a class=\"reference internal\" href=\"/pt-br/1.9/internals/release-process/#backwards-compatibility-policy\"><span class=\"std std-ref\">Versões suportadas</span></a>).</p></li>\n<li><p>Atualizando assim que cada versão do Django fica disponível faz com que futuras atualizações sejam menos dolorosas, por mantendo sua base de código atualizada.</p></li>\n</ul>\n<p>Aqui alguns pontos para considerar para ajudar fazer seu process ode atualização mais suave tanto quanto possível.</p>\n<section id=\"required-reading\">\n<h2>Leitura requerida<a class=\"heading-anchor\" href=\"#required-reading\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Se esta é sua primeira vez fazendo uma atualização, é útil ler o <a class=\"reference internal\" href=\"/pt-br/1.9/internals/release-process/\"><span class=\"doc\">guia sobre o proesso de atualizações diferente</span></a>.</p>\n<p>Depois você deveria familiarizar-se com as mudanças que foram feitas na(s) verõe(s) nova(s) do Django.</p>\n<ul class=\"simple\">\n<li><p>Leia o <a class=\"reference internal\" href=\"/pt-br/1.9/releases/\"><span class=\"doc\">notas sobre a edição</span></a> para cara edição a partir da sua versão de Django corrente, até e inclusive a versão do Django pra qual que você planeja atualizar.</p></li>\n<li><p>Dê uma olhada no <a class=\"reference internal\" href=\"/pt-br/1.9/internals/deprecation/\"><span class=\"doc\">linha do tempo da depreciação</span></a> para as versões relevantes.</p></li>\n</ul>\n<p>Preste uma atenção particular a imcompatibilidades das mudanças nas versões anteriores para ter uma idéia clara do que será necessário para uma atualização de sucesso.</p>\n</section>\n<section id=\"dependencies\">\n<h2>Dependências<a class=\"heading-anchor\" href=\"#dependencies\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Na marioria dos casos para atualizar para a última versão do Django será necessário atualiar as dependências do Django também. Se a versão do Django foi lançada recentemente ou se algumas de suas dependências não são muito bem mantidas, algumas dependências podem não dar suporte a versão do Django. Nestes casos você terá que esperar até que a nova versão das dependências sejam lançadas.</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\">Link para este cabeçalho</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=\"(em 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>Instalação<a class=\"heading-anchor\" href=\"#installation\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Uma vez que esteja pronto, é hora de <a class=\"reference internal\" href=\"/pt-br/1.9/topics/install/\"><span class=\"doc\">Instale a nova versão do Django</span></a>. Se estiver usando o <a class=\"reference external\" href=\"http://www.virtualenv.org/\">virtualenv</a> e for uma atualização grande, você talvez queira configurar um novo ambiente com todas as depoendências primeiro.</p>\n<p>Os passos exatos que serão necessários depende do seu processo de inatalação. O jeito mais conveniente é usar o <a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a> com <code class=\"docutils literal notranslate\"><span class=\"pre\">--upgrade</span></code> ou o parametro <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>O <a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a> também automaticamente desinstala as versões anteriores do Django.</p>\n<p>Se você usa outros processos de instalação, tavez seja necessário manualmente <a class=\"reference internal\" href=\"/pt-br/1.9/topics/install/#removing-old-versions-of-django\"><span class=\"std std-ref\">desinstalar a versão antig do Django</span></a> e deve dar uma olhada nas instruções completas de instalação.</p>\n</section>\n<section id=\"testing\">\n<h2>Testando<a class=\"heading-anchor\" href=\"#testing\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>When the new environment is set up, <a class=\"reference internal\" href=\"/pt-br/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>Depois que rodar os testes, concerte as falhas. Enquanto você tem as notas da versão frescas na sa cabeça, talvez seja uma boa hora para tirar vantagem das novas caraceterísticas do Django refatorando o código para eliminar qualquer alerta de descontinuidade.</p>\n</section>\n<section id=\"deployment\">\n<h2>Implantação<a class=\"heading-anchor\" href=\"#deployment\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Quando você estiver suficientemente confiante que sua aplicação funciona com a nova versão do Django, você está pronto para ir em frente e <a class=\"reference internal\" href=\"/pt-br/1.9/howto/deployment/\"><span class=\"doc\">implantar</span></a> seu projeto com Django atualizado.</p>\n<p>Se você estiver usando o cache fornecido pelo Django, você deve considerar limpar o cache depois da atualização. De outro modo você pode ter problemas, por exemplo, se você estiver mantendo em cache objetos serializados e estes objetos não tem garantia de compatibilidade de serialização entre as versões do Django. Um problema de imcompatibilidade no passado foi o cache de objetos <a class=\"reference internal\" href=\"/pt-br/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> serializados, diretamente ou indiretamente via o decorador <a class=\"reference internal\" href=\"/pt-br/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":"Leitura requerida","anchor":"required-reading","children":[]},{"title":"Dependências","anchor":"dependencies","children":[]},{"title":"Resolving deprecation warnings","anchor":"resolving-deprecation-warnings","children":[]},{"title":"Instalação","anchor":"installation","children":[]},{"title":"Testando","anchor":"testing","children":[]},{"title":"Implantação","anchor":"deployment","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Guias de “como fazer”","url":"/pt-br/1.9/howto/"}],"prev":{"docname":"howto/deployment/checklist","title":"Lista de verificação para distribuição","url":"/pt-br/1.9/howto/deployment/checklist/"},"next":{"docname":"howto/error-reporting","title":"Relatório de erro","url":"/pt-br/1.9/howto/error-reporting/"},"formats":{"html":"/pt-br/1.9/howto/upgrade-version/","markdown":"/pt-br/1.9/howto/upgrade-version.md","json":"/pt-br/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/pt-br/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"]}