{"title":"How to upgrade Django to a newer version","version":"6.1","locale":"el","docname":"howto/upgrade-version","url":"/el/6.1/howto/upgrade-version/","canonical":"https://djangodocs.dev/el/6.1/howto/upgrade-version/","summary":"Upgrading Django to the latest version offers several benefits: New features and improvements become available. Επιδιόρθωση σφαλμάτων. Older versions of Django…","html":"<h1>How to upgrade Django to a newer version<a class=\"heading-anchor\" href=\"#how-to-upgrade-django-to-a-newer-version\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Upgrading Django to the latest version offers several benefits:</p>\n<ul class=\"simple\">\n<li><p>New features and improvements become available.</p></li>\n<li><p>Επιδιόρθωση σφαλμάτων.</p></li>\n<li><p>Older versions of Django eventually stop receiving security updates\n(see <a class=\"reference internal\" href=\"/el/6.1/internals/release-process/#supported-versions-policy\"><span class=\"std std-ref\">Supported versions</span></a>).</p></li>\n<li><p>Upgrading with each new release helps keep your code base current and makes\nfuture upgrades smoother.</p></li>\n</ul>\n<aside class=\"admonition-tools-to-help-with-version-upgrades admonition\">\n<p class=\"admonition-title\">Tools to help with version upgrades</p>\n<p>Django has a vibrant ecosystem. There are automated upgrade helpers\nhighlighted on the <a class=\"reference external\" href=\"https://www.djangoproject.com/community/ecosystem/#upgrade-utilities\">Community Ecosystem</a>\npage.</p>\n</aside>\n<p>Παρακάτω επισημαίνουμε ορισμένα σημεία για να σας βοηθήσουμε να κάνετε την κάθε αναβάθμιση όσο γίνεται πιο ομαλά.</p>\n<section id=\"required-reading\">\n<h2>Απαραίτητη ανάγνωση<a class=\"heading-anchor\" href=\"#required-reading\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Αν είναι η πρώτη σας φορά που κάνετε αναβάθμιση, είναι χρήσιμο να διαβάσετε τον <a class=\"reference internal\" href=\"/el/6.1/internals/release-process/\"><span class=\"doc\">οδηγό της διαδικασίας για διαφορετικές εκδόσεις</span></a>.</p>\n<p>Afterward, you should familiarize yourself with the changes that were made in\nthe new Django version(s):</p>\n<ul class=\"simple\">\n<li><p>Διαβάστε το άρθρο <a class=\"reference internal\" href=\"/el/6.1/releases/\"><span class=\"doc\">σημειώσεις διανομής</span></a> για κάθε “final” διανομή από την αμέσως επόμενη της δικής σας έκδοσης μέχρι αυτή που θέλετε να αναβαθμίσετε.</p></li>\n<li><p>Δείτε στο άρθρο <a class=\"reference internal\" href=\"/el/6.1/internals/deprecation/\"><span class=\"doc\">χρονοδιάγραμμα του deprecation</span></a> για τις σχετικές εκδόσεις, ούτως ώστε να αποφύγετε να χρησιμοποιείτε deprecated λειτουργίες.</p></li>\n</ul>\n<p>Δώστε ιδιαίτερη προσοχή στις μη συμβατές, με παλαιότερες εκδόσεις, αλλαγές, για να πάρετε μια σαφή ιδέα του τι χρειάζεται για μια επιτυχημένη αναβάθμιση.</p>\n<p>If you’re upgrading through more than one feature version (e.g. 2.0 to 2.2),\nit’s usually easier to upgrade through each feature release incrementally\n(2.0 to 2.1 to 2.2) rather than to make all the changes for each feature\nrelease at once. For each feature release, use the latest patch release (e.g.\nfor 2.1, use 2.1.15).</p>\n<p>The same incremental upgrade approach is recommended when upgrading from one\nLTS to the next.</p>\n</section>\n<section id=\"dependencies\">\n<h2>Dependencies<a class=\"heading-anchor\" href=\"#dependencies\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Στις περισσότερες περιπτώσεις θα είναι απαραίτητο να αναβαθμίσετε και τα dependecies (πακέτα-εφαρμογές τρίτων) τα οποία χρησιμοποιείτε με το Django. Αν μια έκδοση Django εκδόθηκε πρόσφατα ή κάποια από τα dependencies σας δεν έχουν την ανάλογη και συχνή αναβάθμιση, τότε ίσως να μην υποστηρίζουν ακόμα την καινούργια έκδοση του Django. Σε αυτές τις περιπτώσεις θα πρέπει να περιμένετε μέχρις ότου εκδοθούν οι νέες εκδόσεις των dependencies σας.</p>\n</section>\n<section id=\"resolving-deprecation-warnings\">\n<h2>Επιλύοντας τα deprecation warnings<a class=\"heading-anchor\" href=\"#resolving-deprecation-warnings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Πριν την αναβάθμιση, μια καλή ιδέα είναι να επιλύσετε τυχόν deprecation warnings τα οποία γίνονται raised από το project σας, με την τρέχουσα έκδοση του Django. Επιδιορθώνοντας αυτά τα warnings, πριν την αναβάθμιση, εγγυάται ότι είστε ενημερωμένοι για τις περιοχές του κώδικα που θέλουν αλλαγή.</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\">-Wa</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=\"(στη Python έκδοση 3.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=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><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>-Wa<span class=\"w\"> </span>manage.py<span class=\"w\"> </span><span class=\"nb\">test</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -Wa manage.py test\n</code></pre></div></div></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 <a class=\"reference external\" href=\"https://docs.pytest.org/\">pytest</a>:</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>always<span class=\"w\"> </span>pytest<span class=\"w\"> </span>tests<span class=\"w\"> </span>--capture<span class=\"o\">=</span>no\n</code></pre></div>\n<p>Επιλύστε κάθε deprecation warning με την τρέχουσα έκδοση του Django που χρησιμοποιείτε και μετά προχωρήστε στην διαδικασία της αναβάθμισης.</p>\n<p>Οι εφαρμογές τρίτων ίσως χρησιμοποιούν deprecated APIs προκειμένου να υποστηρίξουν πολλές εκδόσεις του Django, οπότε τα deprecation warnings στα πακέτα που έχετε εγκαταστήσει, ίσως να μην αποτελούν πρόβλημα. Αν ένα πακέτο-εφαρμογή δεν υποστηρίζει την τελευταία έκδοση του Django, σκεφτείτε μήπως κάνετε raise κάποιο issue ή να στείλετε ένα pull request για αυτό.</p>\n</section>\n<section id=\"installation\">\n<h2>Εγκατάσταση<a class=\"heading-anchor\" href=\"#installation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Once you’re ready, it is time to <a class=\"reference internal\" href=\"/el/6.1/topics/install/\"><span class=\"doc\">install the new Django version</span></a>. If you are using a <a class=\"reference external\" href=\"https://docs.python.org/3/library/venv.html#module-venv\" title=\"(στη Python έκδοση 3.14)\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">virtual</span> <span class=\"pre\">environment</span></code></a> and it\nis a major upgrade, you might want to set up a new environment with all the\ndependencies first.</p>\n<p>If you installed Django with <a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a>, you can use the <code class=\"docutils literal notranslate\"><span class=\"pre\">--upgrade</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">-U</span></code>\nflag:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-1-unix-label\">Linux / macOS</p><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>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-U<span class=\"w\"> </span>Django\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-1-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -m pip install -U Django\n</code></pre></div></div></div>\n</section>\n<section id=\"testing\">\n<h2>Τεστ<a class=\"heading-anchor\" href=\"#testing\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Όταν το νέο περιβάλλον είναι έτοιμο, <a class=\"reference internal\" href=\"/el/6.1/topics/testing/overview/\"><span class=\"doc\">τρέξτε ολόκληρη την σουίτα ελέγχων του Django</span></a> για την εφαρμογή σας. Για ακόμη μια φορά, είναι χρήσιμο να ενεργοποιήσετε τα deprecation warnings ούτως ώστε να εμφανίζονται στην κονσόλα που τρέχει τα τεστ (μπορείτε επίσης να χρησιμοποιήσετε το flag για να τεστάρετε την εφαρμογή σας χειροκίνητα, χρησιμοποιώντας το <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">runserver</span></code>):</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-2-unix-label\">Linux / macOS</p><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>-Wa<span class=\"w\"> </span>manage.py<span class=\"w\"> </span><span class=\"nb\">test</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-2-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</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=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -Wa manage.py test\n</code></pre></div></div></div>\n<p>Αφού έχετε τρέξει όλα τα τεστ, διορθώστε τυχόν περιπτώσεις που το τεστ δεν πέτυχε (failures). Όσο έχετε φρέσκιες τις σημειώσεις της διανομής του Django που αναβαθμίζετε, μια καλή ιδέα είναι να επωφεληθείτε των νέων χαρακτηριστικών της καινούργια έκδοσης και να αλλάξετε τον κώδικα σας, σε κάποια σημεία, για να εξαλείψετε τυχόν deprecation warnings.</p>\n<p>If you are upgrading to an alpha, beta, or release candidate, please see our\nguide on <a class=\"reference internal\" href=\"/el/6.1/internals/contributing/bugs-and-features/#testing-pre-releases\"><span class=\"std std-ref\">How to test pre-release versions of Django</span></a> for more specific tips about catching\nregressions and reporting bugs.</p>\n</section>\n<section id=\"deployment\">\n<h2>Deployment<a class=\"heading-anchor\" href=\"#deployment\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Όταν είστε απολύτως σίγουροι ότι η εφαρμογή σας δουλεύει με την νέα έκδοση του Django, τότε είστε έτοιμοι να προχωρήσετε στο <a class=\"reference internal\" href=\"/el/6.1/howto/deployment/\"><span class=\"doc\">deployment</span></a> του αναβαθμισμένου, πλέον, Django project σας.</p>\n<p>Αν χρησιμοποιείτε το caching που παρέχει το Django, ίσως θα ήταν καλύτερα να αδειάσετε την μνήμη cache μετά την αναβάθμιση. Σε διαφορετική περίπτωση, ίσως να έχετε προβλήματα, για παράδειγμα, αν κάνετε caching τυχόν pickled objects καθώς αυτά τα objects δεν εγγυώνται ότι είναι συμβατά με όλες τις εκδόσεις του Django.  Μια παλαιότερη ασυμβατότητα ήταν το caching των object της κλάσης <a class=\"reference internal\" href=\"/el/6.1/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>, είτε απ’ ευθείας είτε εμμέσως μέσω του decorator <a class=\"reference internal\" href=\"/el/6.1/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":"how-to-upgrade-django-to-a-newer-version","toc":[{"title":"Απαραίτητη ανάγνωση","anchor":"required-reading","children":[]},{"title":"Dependencies","anchor":"dependencies","children":[]},{"title":"Επιλύοντας τα deprecation warnings","anchor":"resolving-deprecation-warnings","children":[]},{"title":"Εγκατάσταση","anchor":"installation","children":[]},{"title":"Τεστ","anchor":"testing","children":[]},{"title":"Deployment","anchor":"deployment","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"How-to guides","url":"/el/6.1/howto/"}],"prev":{"docname":"howto/delete-app","title":"How to delete a Django application","url":"/el/6.1/howto/delete-app/"},"next":{"docname":"howto/windows","title":"Πώς να εγκαταστήσετε το Django στα Windows","url":"/el/6.1/howto/windows/"},"formats":{"html":"/el/6.1/howto/upgrade-version/","markdown":"/el/6.1/howto/upgrade-version.md","json":"/el/6.1/howto/upgrade-version.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/howto/upgrade-version.txt","official":"https://docs.djangoproject.com/el/6.1/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"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}