{"title":"FAQ: Database e modelli","version":"4.0","locale":"it","docname":"faq/models","url":"/it/4.0/faq/models/","canonical":"https://djangodocs.dev/it/4.0/faq/models/","summary":"Come posso vedere le query in puro SQL mentre Django sta funzionando? Link to this heading # Assicurati che l’impostazione Django DEBUG sia impostata a True .…","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>Assicurati che l’impostazione Django <a class=\"reference internal\" href=\"/it/4.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> sia impostata a <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Quindi fai questo:</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=\"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> è disponibile solo se <a class=\"reference internal\" href=\"/it/4.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> è <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. E” una lista di dizionari ordinati come l’esecuzione delle query. Ogni dizionario ha i seguenti:</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>``sql`` -- The raw SQL statement\n``time`` -- How long the statement took to execute, in seconds.\n</code></pre></div>\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>Se stai usando <a class=\"reference internal\" href=\"/it/4.0/topics/db/multi-db/\"><span class=\"doc\">multiple databases</span></a>, puoi utilizzare la stessa interfaccia per ogni membro del dizionario delle <code class=\"docutils literal notranslate\"><span class=\"pre\">connessioni</span></code>:</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=\"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=\"s1\">&#39;my_db_alias&#39;</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<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-pre-existing-database\">\n<h2>Posso utilizzare Django con un database esistente?<a class=\"heading-anchor\" href=\"#can-i-use-django-with-a-pre-existing-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.0/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.0/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.0/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.0/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.0/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>Per esempio, se stai usando MySQL e vuoi che le tue tabelle usino il tipo MyISAM, usa il seguente codice SQL:</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=\"n\">ALTER</span> <span class=\"n\">TABLE</span> <span class=\"n\">myapp_mytable</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 utilizzare Django con un database esistente?","anchor":"can-i-use-django-with-a-pre-existing-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.0/faq/"}],"prev":{"docname":"faq/help","title":"FAQ: Come ricevere aiuto","url":"/it/4.0/faq/help/"},"next":{"docname":"faq/admin","title":"FAQ: Amministrazione","url":"/it/4.0/faq/admin/"},"formats":{"html":"/it/4.0/faq/models/","markdown":"/it/4.0/faq/models.md","json":"/it/4.0/faq/models.json"},"source":"https://github.com/django/django/blob/stable/4.0.x/docs/faq/models.txt","official":"https://docs.djangoproject.com/it/4.0/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"]}