{"title":"FAQ: Bases de Datos y modelos","version":"2.1","locale":"es","docname":"faq/models","url":"/es/2.1/faq/models/","canonical":"https://djangodocs.dev/es/2.1/faq/models/","summary":"¿Cómo puedo ver las consultas SQL plano que Django está ejecutando? Link to this heading # Asegúrese de que la opción DEBUG de Django esté fijada en True . Luego,…","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 plano 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 la opción <a class=\"reference internal\" href=\"/es/2.1/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> de Django esté fijada en <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Luego, haga esto:</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/2.1/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>Si necesita limpiar la lista de consultas de forma manual en cualquier momento de sus funciones, simplemente llame <code class=\"docutils literal notranslate\"><span class=\"pre\">reset_queries()</span></code> de la forma 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><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/2.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/2.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/2.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/2.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>Sin embargo, esto no debe suponer un problema en la práctica porque no hay nada que le impida añadir otras restricciones (utilizando la opción de modelo <code class=\"docutils literal notranslate\"><span class=\"pre\">unique_together</span></code> o creando la restricción directamente en su base de datos) y reforzar esa singularidad a ese nivel. Las claves primarias de columnas simples son necesarias para cosas como que la interfaz del sitio administrativo funcione, por ejemplo, usted necesita una forma sencilla de determinar el objeto a editar o borrar.</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 soportadas oficialmente por Django. Sin embargo, existen varios proyectos paralelos y forks que permiten la operatividad de NoSQL en Django, como <a class=\"reference external\" href=\"http://django-nonrel.org/\">Django non-rel</a>.</p>\n<p>También puede echar un vistazo a la <a class=\"reference external\" href=\"https://code.djangoproject.com/wiki/NoSqlSupport\">página wiki</a> que discute algunas alternativas.</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/2.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 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 plano 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/2.1/faq/"}],"prev":{"docname":"faq/help","title":"FAQ: Obteniendo ayuda","url":"/es/2.1/faq/help/"},"next":{"docname":"faq/admin","title":"FAQ: El sitio administrativo","url":"/es/2.1/faq/admin/"},"formats":{"html":"/es/2.1/faq/models/","markdown":"/es/2.1/faq/models.md","json":"/es/2.1/faq/models.json"},"source":"https://github.com/django/django/blob/stable/2.1.x/docs/faq/models.txt","official":"https://docs.djangoproject.com/es/2.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","pt-br","ko","es","el","pl"]}