{"title":"FAQ: Bases de Datos y modelos","version":"4.0","locale":"es","docname":"faq/models","url":"/es/4.0/faq/models/","canonical":"https://djangodocs.dev/es/4.0/faq/models/","summary":"¿Cómo puedo ver las consultas SQL que Django está ejecutando? Link to this heading # Make sure your Django DEBUG setting is set to True . Then do this: Code Copy…","html":"<h1>FAQ: Bases de Datos y modelos<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>¿Cómo puedo ver las consultas SQL que Django está ejecutando?<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=\"/es/4.0/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=\"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> sólo está disponible si: setting:DEBUG está fijada en <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Es una lista de diccionarios en el orden de ejecución de la consulta. Cada diccionario tiene lo siguiente:</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> 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.</p>\n<p>Si usted está utilizando <a class=\"reference internal\" href=\"/es/4.0/topics/db/multi-db/\"><span class=\"doc\">bases de datos múltiples</span></a>, usted puede utilizar la misma interfaz en cada miembro del diccionario <code class=\"docutils literal notranslate\"><span class=\"pre\">connections</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>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<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>¿Puedo usar Django con una base de datos ya existente?<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í. Consulte <a class=\"reference internal\" href=\"/es/4.0/howto/legacy-databases/\"><span class=\"doc\">Integración con una base de datos heredada</span></a>.</p>\n</section>\n<section id=\"if-i-make-changes-to-a-model-how-do-i-update-the-database\">\n<h2>Si realizo cambios a un modelo, ¿cómo actualizo la base de datos?<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>Eche un vistazo a la ayuda de Django para <a class=\"reference internal\" href=\"/es/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\">migraciones</span> <span class=\"pre\">de</span> <span class=\"pre\">esquemas</span></code></a>.</p>\n<p>Si no le importa borrar los datos, la utilidad <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> de su proyecto tiene una opción <a class=\"reference internal\" href=\"/es/4.0/ref/django-admin/#django-admin-flush\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">flush</span></code></a> para restablecer la base de datos al estado en que estaba inmediatamente después de que <a class=\"reference internal\" href=\"/es/4.0/ref/django-admin/#django-admin-migrate\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">migrate</span></code></a> fue ejecutado.</p>\n</section>\n<section id=\"do-django-models-support-multiple-column-primary-keys\">\n<h2>¿Los modelos de Django soportan claves primarias en columnas múltiples?<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, sólo son soportadas claves primarias de columna única.</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>¿Soporta Django bases de datos 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>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>¿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?<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>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 <a class=\"reference internal\" href=\"/es/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> que contenga sentencias <code class=\"docutils literal notranslate\"><span class=\"pre\">ALTER</span> <span class=\"pre\">TABLE</span></code> que hagan lo que usted quiere hacer.</p>\n<p>Por ejemplo, si está usando MySQL y quiere que sus tablas usen el tipo de tabla MyISAM, use la siguiente sentencia 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":"¿Cómo puedo ver las consultas SQL que Django está ejecutando?","anchor":"how-can-i-see-the-raw-sql-queries-django-is-running","children":[]},{"title":"¿Puedo usar Django con una base de datos ya existente?","anchor":"can-i-use-django-with-a-pre-existing-database","children":[]},{"title":"Si realizo cambios a un modelo, ¿cómo actualizo la base de datos?","anchor":"if-i-make-changes-to-a-model-how-do-i-update-the-database","children":[]},{"title":"¿Los modelos de Django soportan claves primarias en columnas múltiples?","anchor":"do-django-models-support-multiple-column-primary-keys","children":[]},{"title":"¿Soporta Django bases de datos NoSQL?","anchor":"does-django-support-nosql-databases","children":[]},{"title":"¿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?","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":"FAQ de Django","url":"/es/4.0/faq/"}],"prev":{"docname":"faq/help","title":"FAQ: Obteniendo ayuda","url":"/es/4.0/faq/help/"},"next":{"docname":"faq/admin","title":"FAQ: El sitio administrativo","url":"/es/4.0/faq/admin/"},"formats":{"html":"/es/4.0/faq/models/","markdown":"/es/4.0/faq/models.md","json":"/es/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/es/4.0/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","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}