{"title":"자주 묻는 질문: 데이터베이스와 모델","version":"5.0","locale":"ko","docname":"faq/models","url":"/ko/5.0/faq/models/","canonical":"https://djangodocs.dev/ko/5.0/faq/models/","summary":"어떻게 장고가 작동시키는 순수 SQL 쿼리를 볼 수 있나요? Link to this heading # Django : setting :DEBUG’ 옵션이 ‘TRUE’로 설정되어 있는지 확인하세요. 그리고 다음 작업을 수행하세요. Python console Copy >>> from…","html":"<h1>자주 묻는 질문: 데이터베이스와 모델<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>어떻게 장고가 작동시키는 순수 SQL 쿼리를 볼 수 있나요?<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>Django : setting :DEBUG’ 옵션이 ‘TRUE’로 설정되어 있는지 확인하세요. 그리고 다음 작업을 수행하세요.</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> is only available if <a class=\"reference internal\" href=\"/ko/5.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.\nIt’s a list of dictionaries in order of query execution. Each dictionary has\nthe following:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">sql</span></code> - The raw SQL statement</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">time</span></code> - How long the statement took to execute, in seconds.</p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">connection.queries</span></code> 는 모든 SQL 표현문을 포함합니다. INSERT, UPDATES, SELET 등. 당신의 앱이 데이터베이스에 쿼리할 때마다, 쿼리들이 기록됩니다.</p>\n<p>If you are using <a class=\"reference internal\" href=\"/ko/5.0/topics/db/multi-db/\"><span class=\"doc\">multiple databases</span></a>, you can use the\nsame interface on each member of the <code class=\"docutils literal notranslate\"><span class=\"pre\">connections</span></code> dictionary:</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>만약 함수의 어느 지점에서 수동으로 쿼리 리스트들을 초기화할 필요가 있다면, 다음과 같이``reset_queries()` 를 호출하세요.</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>장고를 이미 존재하는 데이터베이스와 함께 사용할 수 있나요?<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>네, :doc:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>기존 데이터베이스와 통합 &lt;/howto/legacy-databases&gt;`를 보세요</p>\n</section>\n<section id=\"if-i-make-changes-to-a-model-how-do-i-update-the-database\">\n<h2>만약 모델에 변화가 생기면, 어떻게 데이터베이스에 적용하나요?<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>:mod:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>schema migrations &lt;django.db.migrations&gt;`라는 장고 지원문서를 참조하세요.</p>\n<p>데이터가 지워지는 것을 개의치 않는다면, 프로젝트의 “manage.py” 유틸리티는 <a class=\"reference internal\" href=\"/ko/5.0/ref/django-admin/#django-admin-flush\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">flush</span></code></a> 옵션을 가지고있어서 :djadmin:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>migrate`가 실행된 후의 데이터베이스 상태로 되돌려 줍니다.</p>\n</section>\n<section id=\"do-django-models-support-multiple-column-primary-keys\">\n<h2>장고 모델들은 다중 열 기본 키를 지원하나요?<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>아니요. 오직 하나의 기본 키만 지원합니다.</p>\n<p>그러나 이것은 실제로 문제가 되지 않습니다. 왜냐하면 다른 제약 조건을 추가하거나(<code class=\"docutils literal notranslate\"><span class=\"pre\">unique_together</span></code> 모델 옵션을 사용하거나 데이터베이스에서 직접 제약 조건을 생성하는 것), 해당 수준에서 유일함을 강제하는 것을 막을 수 없기 때문입니다. 단일 열 기본 키는 관리자 인터페이스와 같은 작업에 필요합니다. 예를 들어 편집하거나 삭제할 개체를 지정하려면 단일 값이 필요합니다.</p>\n</section>\n<section id=\"does-django-support-nosql-databases\">\n<h2>장고는 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 데이터베이스를 공식적으로 지원하지 않습니다.\n그러나, 장고에는 NoSQL 기능을 따르는 많은 사이드 프로젝트가 있습니다.</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>위키 페이지`_에서 여러 프로젝트들에 대해 논의해 볼 수 있습니다.</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>어떻게하면 MyISAM을 테이블 타입에 주는것과 같은 데이터베이스 전용 옵션을 CREATE TABLE 명령에 추가할 수 있을까요?<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>저희는 데이터베이스 마다 가지고있는 옵션들 예를들면 테이블 타입과 같은 것들을 호환하기 위해 특이 사항들을 추가하는 것을 꺼려합니다. 만약 당신이 이런 옵션들을 쓰고 싶다면, 당신이 하고자 하는 것을 가지고있는 :class:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>~django.db.migrations.operations.RunSQL`의  <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ALTER TABLE``명령어를 활용하여 마이그레이션을 만드세요.</p>\n<p>For example, if you’re using MySQL and want your tables to use the MyISAM table\ntype, use the following 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":"어떻게 장고가 작동시키는 순수 SQL 쿼리를 볼 수 있나요?","anchor":"how-can-i-see-the-raw-sql-queries-django-is-running","children":[]},{"title":"장고를 이미 존재하는 데이터베이스와 함께 사용할 수 있나요?","anchor":"can-i-use-django-with-a-preexisting-database","children":[]},{"title":"만약 모델에 변화가 생기면, 어떻게 데이터베이스에 적용하나요?","anchor":"if-i-make-changes-to-a-model-how-do-i-update-the-database","children":[]},{"title":"장고 모델들은 다중 열 기본 키를 지원하나요?","anchor":"do-django-models-support-multiple-column-primary-keys","children":[]},{"title":"장고는 NoSQL 데이터베이스를 지원하나요?","anchor":"does-django-support-nosql-databases","children":[]},{"title":"어떻게하면 MyISAM을 테이블 타입에 주는것과 같은 데이터베이스 전용 옵션을 CREATE TABLE 명령에 추가할 수 있을까요?","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":"장고 자주묻는 질문","url":"/ko/5.0/faq/"}],"prev":{"docname":"faq/help","title":"자주 묻는 질문: 도움을 받는법","url":"/ko/5.0/faq/help/"},"next":{"docname":"faq/admin","title":"자주 묻는 질문: 관리자","url":"/ko/5.0/faq/admin/"},"formats":{"html":"/ko/5.0/faq/models/","markdown":"/ko/5.0/faq/models.md","json":"/ko/5.0/faq/models.json"},"source":"https://github.com/django/django/blob/stable/5.0.x/docs/faq/models.txt","official":"https://docs.djangoproject.com/ko/5.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"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}