{"title":"Συχνές Ερωτήσεις: Βάσεις δεδομένων και Μοντέλα","version":"5.2","locale":"el","docname":"faq/models","url":"/el/5.2/faq/models/","canonical":"https://djangodocs.dev/el/5.2/faq/models/","summary":"Πως μπορώ να δω το SQL ερώτημα που κάνει το Django στο παρασκήνιο; Link to this heading # Make sure your Django DEBUG setting is set to True . Then do this: Python…","html":"<h1>Συχνές Ερωτήσεις: Βάσεις δεδομένων και Μοντέλα<a class=\"heading-anchor\" href=\"#faq-databases-and-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"how-can-i-see-the-raw-sql-queries-django-is-running\">\n<span id=\"faq-see-raw-sql-queries\"></span><h2>Πως μπορώ να δω το SQL ερώτημα που κάνει το Django στο παρασκήνιο;<a class=\"heading-anchor\" href=\"#how-can-i-see-the-raw-sql-queries-django-is-running\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Make sure your Django <a class=\"reference internal\" href=\"/el/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> setting is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.\nThen do this:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">connection</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">connection</span><span class=\"o\">.</span><span class=\"n\">queries</span>\n<span class=\"go\">[{&#39;sql&#39;: &#39;SELECT polls_polls.id, polls_polls.question, polls_polls.pub_date FROM polls_polls&#39;,</span>\n<span class=\"go\">&#39;time&#39;: &#39;0.002&#39;}]</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">connection.queries</span></code> is only available if <a class=\"reference internal\" href=\"/el/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.\nIt’s a list of dictionaries in order of query execution. Each dictionary has\nthe following:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">sql</span></code> - The raw SQL statement</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">time</span></code> - How long the statement took to execute, in seconds.</p></li>\n</ul>\n<p>Το <code class=\"docutils literal notranslate\"><span class=\"pre\">connection.queries</span></code> περιλαμβάνει όλες τις SQL εντολές – INSERTs, UPDATES, SELECTs, κλπ. Κάθε φορά που η εφαρμογή σας (ο κώδικας, αν θέλετε) αλληλεπιδρά με τη βάση δεδομένων η εντολή θα καταγράφεται.</p>\n<p>If you are using <a class=\"reference internal\" href=\"/el/5.2/topics/db/multi-db/\"><span class=\"doc\">multiple databases</span></a>, you can use the\nsame interface on each member of the <code class=\"docutils literal notranslate\"><span class=\"pre\">connections</span></code> dictionary:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">connections</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">connections</span><span class=\"p\">[</span><span class=\"s2\">&quot;my_db_alias&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">queries</span>\n</code></pre></div>\n<p>If you need to clear the query list manually at any point in your functions,\ncall <code class=\"docutils literal notranslate\"><span class=\"pre\">reset_queries()</span></code>, like this:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reset_queries</span>\n\n<span class=\"n\">reset_queries</span><span class=\"p\">()</span>\n</code></pre></div>\n</section>\n<section id=\"can-i-use-django-with-a-preexisting-database\">\n<h2>Can I use Django with a preexisting database?<a class=\"heading-anchor\" href=\"#can-i-use-django-with-a-preexisting-database\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Βεβαίως. Δείτε στο άρθρο <a class=\"reference internal\" href=\"/el/5.2/howto/legacy-databases/\"><span class=\"doc\">Χρησιμοποιώντας μια υπάρχουσα βάση δεδομένων</span></a>.</p>\n</section>\n<section id=\"if-i-make-changes-to-a-model-how-do-i-update-the-database\">\n<h2>Αν κάνω αλλαγές σε κάποιο μοντέλο, πως ενημερώνω τη βάση δεδομένων;<a class=\"heading-anchor\" href=\"#if-i-make-changes-to-a-model-how-do-i-update-the-database\"><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/5.2/topics/migrations/#module-django.db.migrations\" title=\"django.db.migrations: Schema migration support for Django models\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">schema</span> <span class=\"pre\">migrations</span></code></a>.</p>\n<p>Αν δεν ενδιαφέρεστε να διαγραφούν τα δεδομένα, το <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> έχει την επιλογή <a class=\"reference internal\" href=\"/el/5.2/ref/django-admin/#django-admin-flush\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">flush</span></code></a> η οποία επαναφέρει τη βάση δεδομένων στη κατάσταση που ήταν αμέσως μετά την εκτέλεση του <a class=\"reference internal\" href=\"/el/5.2/ref/django-admin/#django-admin-migrate\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">migrate</span></code></a>.</p>\n</section>\n<section id=\"do-django-models-support-multiple-column-primary-keys\">\n<h2>Υποστηρίζουν τα Django μοντέλα primary keys πολλαπλών-στηλών;<a class=\"heading-anchor\" href=\"#do-django-models-support-multiple-column-primary-keys\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Όχι. Υποστηρίζονται μόνο τα primary keys που ανήκουν σε μια στήλη.</p>\n<p>But this isn’t an issue in practice, because there’s nothing stopping you from\nadding other constraints (using the <code class=\"docutils literal notranslate\"><span class=\"pre\">unique_together</span></code> model option or\ncreating the constraint directly in your database), and enforcing the\nuniqueness at that level. Single-column primary keys are needed for things such\nas the admin interface to work; e.g., you need a single value to specify\nan object to edit or delete.</p>\n</section>\n<section id=\"does-django-support-nosql-databases\">\n<h2>Υποστηρίζονται οι βάσεις δεδομένων NoSQL στο Django;<a class=\"heading-anchor\" href=\"#does-django-support-nosql-databases\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>NoSQL databases are not officially supported by Django itself. There are,\nhowever, a number of side projects and forks which allow NoSQL functionality in\nDjango.</p>\n<p>You can take a look on <a class=\"reference external\" href=\"https://code.djangoproject.com/wiki/NoSqlSupport\">the wiki page</a> which discusses some projects.</p>\n</section>\n<section id=\"how-do-i-add-database-specific-options-to-my-create-table-statements-such-as-specifying-myisam-as-the-table-type\">\n<h2>Πως προσθέτω δικές μου επιλογές στις εντολές της βάσης δεδομένων CREATE TABLE, όπως προσδιορίζοντας το MyISAM ως τύπο πίνακα;<a class=\"heading-anchor\" href=\"#how-do-i-add-database-specific-options-to-my-create-table-statements-such-as-specifying-myisam-as-the-table-type\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Προσπαθούμε να αποφύγουμε την εισαγωγή ειδικών περιπτώσεων στο κώδικα του Django όπως είναι ο τύπος του πίνακα κλπ, οι οποίες αφορούν επιλογές συγκεκριμένων βάσεων δεδομένων. Αν θέλετε να χρησιμοποιήσετε τέτοιου είδους επιλογές, δημιουργήστε ένα migration με τη λειτουργία <a class=\"reference internal\" href=\"/el/5.2/ref/migration-operations/#django.db.migrations.operations.RunSQL\" title=\"django.db.migrations.operations.RunSQL\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RunSQL</span></code></a> η οποία θα περιέχει τις δηλώσεις του τύπου <code class=\"docutils literal notranslate\"><span class=\"pre\">ALTER</span> <span class=\"pre\">TABLE</span></code> οι οποίες θα κάνουν αυτό που θέλετε.</p>\n<p>For example, if you’re using MySQL and want your tables to use the MyISAM table\ntype, use the following SQL:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">ALTER</span><span class=\"w\"> </span><span class=\"k\">TABLE</span><span class=\"w\"> </span><span class=\"n\">myapp_mytable</span><span class=\"w\"> </span><span class=\"n\">ENGINE</span><span class=\"o\">=</span><span class=\"n\">MyISAM</span><span class=\"p\">;</span>\n</code></pre></div>\n</section>","rootId":"faq-databases-and-models","toc":[{"title":"Πως μπορώ να δω το SQL ερώτημα που κάνει το Django στο παρασκήνιο;","anchor":"how-can-i-see-the-raw-sql-queries-django-is-running","children":[]},{"title":"Can I use Django with a preexisting database?","anchor":"can-i-use-django-with-a-preexisting-database","children":[]},{"title":"Αν κάνω αλλαγές σε κάποιο μοντέλο, πως ενημερώνω τη βάση δεδομένων;","anchor":"if-i-make-changes-to-a-model-how-do-i-update-the-database","children":[]},{"title":"Υποστηρίζουν τα Django μοντέλα primary keys πολλαπλών-στηλών;","anchor":"do-django-models-support-multiple-column-primary-keys","children":[]},{"title":"Υποστηρίζονται οι βάσεις δεδομένων NoSQL στο Django;","anchor":"does-django-support-nosql-databases","children":[]},{"title":"Πως προσθέτω δικές μου επιλογές στις εντολές της βάσης δεδομένων CREATE TABLE, όπως προσδιορίζοντας το MyISAM ως τύπο πίνακα;","anchor":"how-do-i-add-database-specific-options-to-my-create-table-statements-such-as-specifying-myisam-as-the-table-type","children":[]}],"breadcrumbs":[{"docname":"faq/index","title":"Συχνές Ερωτήσεις για το Django","url":"/el/5.2/faq/"}],"prev":{"docname":"faq/help","title":"Συχνές Ερωτήσεις: Λαμβάνοντας βοήθεια","url":"/el/5.2/faq/help/"},"next":{"docname":"faq/admin","title":"Συχνές Ερωτήσεις: Το admin site","url":"/el/5.2/faq/admin/"},"formats":{"html":"/el/5.2/faq/models/","markdown":"/el/5.2/faq/models.md","json":"/el/5.2/faq/models.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/faq/models.txt","official":"https://docs.djangoproject.com/el/5.2/faq/models/","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"]}