{"title":"FAQ: Bases de Datos y modelos","version":"5.1","locale":"es","docname":"faq/models","url":"/es/5.1/faq/models/","canonical":"https://djangodocs.dev/es/5.1/faq/models/","summary":"¿Cómo puedo ver las consultas SQL que Django está ejecutando? Link to this heading # Asegúrese de que su configuración de Django DEBUG esté establecida en True .…","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>Asegúrese de que su configuración de Django <a class=\"reference internal\" href=\"/es/5.1/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> esté establecida en <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Luego haga esto:</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> solo está disponible si :setting:<code class=\"docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code> es <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Es una lista de diccionarios en orden de ejecución de consulta. Cada diccionario tiene lo siguiente:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">sql</span></code> - La instrucción SQL sin procesar</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">time</span></code> - Cuánto tiempo tardó la instrucción en ejecutarse, en segundos.</p></li>\n</ul>\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 está utilizando <a class=\"reference internal\" href=\"/es/5.1/topics/db/multi-db/\"><span class=\"doc\">multiple databases</span></a>, 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=\"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>Si necesita borrar la lista de consultas manualmente en cualquier punto de sus funciones, llame a <code class=\"docutils literal notranslate\"><span class=\"pre\">reset_queries()</span></code>, así:</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>¿Puedo usar Django con una base de datos preexistente?<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í. Consulte <a class=\"reference internal\" href=\"/es/5.1/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/5.1/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/5.1/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/5.1/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>Pero esto no es un problema en la práctica, porque no hay nada que le impida agregar otras restricciones (usando la opción de modelo <code class=\"docutils literal notranslate\"><span class=\"pre\">unique_together</span></code> o crear la restricción directamente en su base de datos) y hacer cumplir la singularidad en ese nivel. Las claves primarias de una sola columna son necesarias para que funcionen cosas como la interfaz de administración; por ejemplo, necesita un único valor para especificar un objeto para editar o eliminar.</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>Las bases de datos NoSQL no son compatibles oficialmente con Django en sí mismo. Sin embargo, hay una serie de proyectos paralelos y bifurcaciones que permiten la funcionalidad NoSQL en Django</p>\n<p>Puede echar un vistazo a <a class=\"reference external\" href=\"https://code.djangoproject.com/wiki/NoSqlSupport\">la página wiki</a> donde se discuten algunos proyectos.</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/5.1/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 usa MySQL y desea que las tablas usen el tipo de tabla MyISAM, use el siguiente 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":"¿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 preexistente?","anchor":"can-i-use-django-with-a-preexisting-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/5.1/faq/"}],"prev":{"docname":"faq/help","title":"FAQ: Obteniendo ayuda","url":"/es/5.1/faq/help/"},"next":{"docname":"faq/admin","title":"FAQ: El sitio administrativo","url":"/es/5.1/faq/admin/"},"formats":{"html":"/es/5.1/faq/models/","markdown":"/es/5.1/faq/models.md","json":"/es/5.1/faq/models.json"},"source":"https://github.com/django/django/blob/stable/5.1.x/docs/faq/models.txt","official":"https://docs.djangoproject.com/es/5.1/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"]}