{"title":"FAQ: Database e modelli","version":"4.2","locale":"it","docname":"faq/models","url":"/it/4.2/faq/models/","canonical":"https://djangodocs.dev/it/4.2/faq/models/","summary":"Come posso vedere le query in puro SQL mentre Django sta funzionando? Link to this heading # Make sure your Django DEBUG setting is set to True . Then do this:…","html":"<h1>FAQ: Database e modelli<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>Come posso vedere le query in puro SQL mentre Django sta funzionando?<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=\"/it/4.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=\"/it/4.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> include tutti gli statement SQL – INSERT, UPDATES, SELECT, etc. Ogni volta la tua applicazione tocca il database, la query viene registrata.</p>\n<p>If you are using <a class=\"reference internal\" href=\"/it/4.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>Se hai bisogno di cancellare manualmente l’elenco delle query in qualsiasi punto delle tue funzioni, chiama <code class=\"docutils literal notranslate\"><span class=\"pre\">reset_queries()</span></code>, in questo modo:</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>Posso usare Django con un database preesistente?<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>Sì. Vedi <a class=\"reference internal\" href=\"/it/4.2/howto/legacy-databases/\"><span class=\"doc\">Integrating with a legacy database</span></a>.</p>\n</section>\n<section id=\"if-i-make-changes-to-a-model-how-do-i-update-the-database\">\n<h2>Se faccio dei cambiamenti a un modello, come posso aggiornare il database?<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>Dai uno sguardo al supporto di Django per <a class=\"reference internal\" href=\"/it/4.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>Se non ti preoccupa cancellare i dati, l’utility <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> del tuo progetto ha una opzione <a class=\"reference internal\" href=\"/it/4.2/ref/django-admin/#django-admin-flush\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">flush</span></code></a> per resettare il database allo stato in cui era immediatamente dopo l’esecuzione di <a class=\"reference internal\" href=\"/it/4.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>I modelli di Django supportano le chiavi primarie multicolonna?<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>No, solo le chiavi primarie a colonna singola sono supportate.</p>\n<p>Ma questo in pratica non è un problema, perché non c’è nulla che ti impedisca di aggiungere altri vincoli (usando l’opzione <code class=\"docutils literal notranslate\"><span class=\"pre\">unique_together</span></code> o creando il vincolo direttamente nel tuo database) e di imporre l’unicità a quel livello. Le chiavi primarie a colonna singola sono necessarie per far funzionare cose come l’interfaccia di amministrazione; ad esempio, è necessario un singolo valore per specificare un oggetto da modificare o eliminare.</p>\n</section>\n<section id=\"does-django-support-nosql-databases\">\n<h2>Django supporta i database NoSQL?<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>I database NoSQL non sono ufficialmente supportati da Django stesso. Esistono, tuttavia, numerosi progetti terzi e fork che consentono la funzionalità NoSQL in Django.</p>\n<p>Si Può dare un’occhiata a: <a class=\"reference external\" href=\"https://code.djangoproject.com/wiki/NoSqlSupport\">the wiki page</a> che discute di alcuni progetti.</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>Come aggiungo opzioni specifiche del database ai mie statement  CREATE TABLE, come ad esempio per specificare il tipo della tabella come 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>Noi cerchiamo di evitare di aggiungere casi speciali nel codice di Django per permettere tutte le opzioni specifiche dei database, come il tipo di tabella, etc. Se vuoi usare alcune di queste opzioni, crea una migrazione <a class=\"reference internal\" href=\"/it/4.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> con una operazione che contiene gli statement <code class=\"docutils literal notranslate\"><span class=\"pre\">ALTER</span> <span class=\"pre\">TABLE</span></code> che fanno ciò che richiedi.</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":"Come posso vedere le query in puro SQL mentre Django sta funzionando?","anchor":"how-can-i-see-the-raw-sql-queries-django-is-running","children":[]},{"title":"Posso usare Django con un database preesistente?","anchor":"can-i-use-django-with-a-preexisting-database","children":[]},{"title":"Se faccio dei cambiamenti a un modello, come posso aggiornare il database?","anchor":"if-i-make-changes-to-a-model-how-do-i-update-the-database","children":[]},{"title":"I modelli di Django supportano le chiavi primarie multicolonna?","anchor":"do-django-models-support-multiple-column-primary-keys","children":[]},{"title":"Django supporta i database NoSQL?","anchor":"does-django-support-nosql-databases","children":[]},{"title":"Come aggiungo opzioni specifiche del database ai mie statement  CREATE TABLE, come ad esempio per specificare il tipo della tabella come 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 FAQ","url":"/it/4.2/faq/"}],"prev":{"docname":"faq/help","title":"FAQ: Come ricevere aiuto","url":"/it/4.2/faq/help/"},"next":{"docname":"faq/admin","title":"FAQ: Amministrazione","url":"/it/4.2/faq/admin/"},"formats":{"html":"/it/4.2/faq/models/","markdown":"/it/4.2/faq/models.md","json":"/it/4.2/faq/models.json"},"source":"https://github.com/django/django/blob/stable/4.2.x/docs/faq/models.txt","official":"https://docs.djangoproject.com/it/4.2/faq/models/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}