FAQ: Bases de Datos y modelos¶
¿Cómo puedo ver las consultas SQL plano que Django está ejecutando?¶
Make sure your Django DEBUG
setting is set to True
.
Then do this:
>>> 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
sólo está disponible si: setting:DEBUG está fijada en True
. Es una lista de diccionarios en el orden de ejecución de la consulta. Cada diccionario tiene lo siguiente:
``sql`` -- The raw SQL statement
``time`` -- How long the statement took to execute, in seconds.
connection.queries
incluye todas las sentencias SQL: INSERTs, UPDATES, SELECTs, etc. Cada vez que su aplicación accede a la base de datos, la consulta será registrada.
Si usted está utilizando bases de datos múltiples, usted puede utilizar la misma interfaz en cada miembro del diccionario connections
:
>>> from django.db import connections
>>> connections['my_db_alias'].queries
If you need to clear the query list manually at any point in your functions,
call reset_queries()
, like this:
from django.db import reset_queries
reset_queries()
¿Puedo usar Django con una base de datos ya existente?¶
Sí. Consulte Integración con una base de datos heredada.
Si realizo cambios a un modelo, ¿cómo actualizo la base de datos?¶
Eche un vistazo a la ayuda de Django para migraciones de esquemas
.
Si no le importa borrar los datos, la utilidad manage.py
de su proyecto tiene una opción flush
para restablecer la base de datos al estado en que estaba inmediatamente después de que migrate
fue ejecutado.
¿Los modelos de Django soportan claves primarias en columnas múltiples?¶
No, sólo son soportadas claves primarias de columna única.
But this isn’t an issue in practice, because there’s nothing stopping you from
adding other constraints (using the unique_together
model option or
creating the constraint directly in your database), and enforcing the
uniqueness at that level. Single-column primary keys are needed for things such
as the admin interface to work; e.g., you need a single value to specify
an object to edit or delete.
¿Soporta Django bases de datos NoSQL?¶
NoSQL databases are not officially supported by Django itself. There are, however, a number of side projects and forks which allow NoSQL functionality in Django.
You can take a look on the wiki page which discusses some projects.
¿Cómo añado opciones específicas de la base de datos a mis sentencias CREATE TABLE, tales como establecer MyISAM como el tipo de tabla?¶
Tratamos de evitar añadir casos especiales en el código de Django para ajustar todas las opciones específicas de base de datos como el tipo de tabla, etc. Si desea usar cualquiera de estas opciones, cree una migración con una operación RunSQL
que contenga sentencias ALTER TABLE
que hagan lo que usted quiere hacer.
Por ejemplo, si está usando MySQL y quiere que sus tablas usen el tipo de tabla MyISAM, use la siguiente sentencia SQL:
ALTER TABLE myapp_mytable ENGINE=MyISAM;