Assicurati che l’impostazione Django DEBUG
sia impostata a True
. Quindi fai questo:
>>> from django.db import connection
>>> connection.queries
[{'sql': 'SELECT polls_polls.id, polls_polls.question, polls_polls.pub_date FROM polls_polls',
'time': '0.002'}]
connection.queries
è disponibile solo se DEBUG
è True
. E” una lista di dizionari ordinati come l’esecuzione delle query. Ogni dizionario ha i seguenti:
``sql`` -- The raw SQL statement
``time`` -- How long the statement took to execute, in seconds.
connection.queries
include tutti gli statement SQL – INSERT, UPDATES, SELECT, etc. Ogni volta la tua applicazione tocca il database, la query viene registrata.
Se stai usando multiple databases, puoi utilizzare la stessa interfaccia per ogni membro del dizionario delle connessioni
:
>>> from django.db import connections
>>> connections['my_db_alias'].queries
Se hai bisogno di cancellare manualmente l’elenco delle query in qualsiasi punto delle tue funzioni, chiama reset_queries()
, in questo modo:
from django.db import reset_queries
reset_queries()
Sì. Vedi Integrating with a legacy database.
Dai uno sguardo al supporto di Django per schema migrations
.
Se non ti preoccupa cancellare i dati, l’utility manage.py
del tuo progetto ha una opzione flush
per resettare il database allo stato in cui era immediatamente dopo l’esecuzione di migrate
.
No, solo le chiavi primarie a colonna singola sono supportate.
Ma questo in pratica non è un problema, perché non c’è nulla che ti impedisca di aggiungere altri vincoli (usando l’opzione unique_together
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.
I database NoSQL non sono ufficialmente supportati da Django stesso. Esistono, tuttavia, numerosi progetti terzi e fork che consentono la funzionalità NoSQL in Django.
Si Può dare un’occhiata a: the wiki page che discute di alcuni progetti.
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 RunSQL
con una operazione che contiene gli statement ALTER TABLE
che fanno ciò che richiedi.
Per esempio, se stai usando MySQL e vuoi che le tue tabelle usino il tipo MyISAM, usa il seguente codice SQL:
ALTER TABLE myapp_mytable ENGINE=MyISAM;
mar 08, 2023