{"title":"Fornecendo dados iniciais para modelos.","version":"2.2","locale":"pt-br","docname":"howto/initial-data","url":"/pt-br/2.2/howto/initial-data/","canonical":"https://djangodocs.dev/pt-br/2.2/howto/initial-data/","summary":"Algumas vezes é útil pre-popular o seu banco de dados com dados hard-coded quando você está configurando a sua aplicação pela primeira vez. Você pode prover dados…","html":"<h1>Fornecendo dados iniciais para modelos.<a class=\"heading-anchor\" href=\"#providing-initial-data-for-models\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Algumas vezes é útil pre-popular o seu banco de dados com dados hard-coded quando você está configurando a sua aplicação pela primeira vez. Você pode prover dados iniciais como migrations ou fixtures.</p>\n<section id=\"providing-initial-data-with-migrations\">\n<h2>Provendo dados iniciais com migrations<a class=\"heading-anchor\" href=\"#providing-initial-data-with-migrations\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Se você quer carregar automaticamente dados iniciais para a sua aplicação, crie uma <span class=\"xref std std-ref\">data migration ` (ou migração de dados). Migrações são executadas enquanto o banco de dados de teste é configurado, então os dados serão disponíveis lá, sujeito a :ref:`algumas limitações</span>.</p>\n</section>\n<section id=\"providing-data-with-fixtures\">\n<span id=\"initial-data-via-fixtures\"></span><h2>Provendo dados com fixtures.<a class=\"heading-anchor\" href=\"#providing-data-with-fixtures\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Você também pode prover dados usando fixtures, no entanto, esses dados não são carregados automaticamente, exceto se você usar <a class=\"reference internal\" href=\"/pt-br/2.2/topics/testing/tools/#django.test.TransactionTestCase.fixtures\" title=\"django.test.TransactionTestCase.fixtures\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">TransactionTestCase.fixtures</span></code></a>.</p>\n<p>Uma fixture é uma coleção de dados que o Django sabe como importar para o banco de dados. A maneira mais fácil de criar uma “fixture” se você já tem  algum dado é usar o comando <a class=\"reference internal\" href=\"/pt-br/2.2/ref/django-admin/#django-admin-dumpdata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">dumpdata</span></code></a>. Ou, você pode escrever fixtures manualmente; “fixtures” podem ser escritas como documentos JSON, XML ou YAML (com <a class=\"reference external\" href=\"https://pyyaml.org/\">PyYAML</a> installed). O <a class=\"reference internal\" href=\"/pt-br/2.2/topics/serialization/\"><span class=\"doc\">documentos de serialização</span></a> tem mais detalhes sobre cada um destes <a class=\"reference internal\" href=\"/pt-br/2.2/topics/serialization/#serialization-formats\"><span class=\"std std-ref\">formatos de serialização</span></a>.</p>\n<p>Como exemplo, no entanto, aqui o que uma “fixture” para um simples modelo <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> se parece no formato json.</p>\n<div class=\"code-block\" data-language=\"js\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Js</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=\"Js code\"><code><span class=\"p\">[</span>\n<span class=\"w\">  </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;model&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;myapp.person&quot;</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;pk&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"mf\">1</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;fields&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">      </span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;John&quot;</span><span class=\"p\">,</span>\n<span class=\"w\">      </span><span class=\"s2\">&quot;last_name&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;Lennon&quot;</span>\n<span class=\"w\">    </span><span class=\"p\">}</span>\n<span class=\"w\">  </span><span class=\"p\">},</span>\n<span class=\"w\">  </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;model&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;myapp.person&quot;</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;pk&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"mf\">2</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;fields&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">      </span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;Paul&quot;</span><span class=\"p\">,</span>\n<span class=\"w\">      </span><span class=\"s2\">&quot;last_name&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;McCartney&quot;</span>\n<span class=\"w\">    </span><span class=\"p\">}</span>\n<span class=\"w\">  </span><span class=\"p\">}</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>E aqui a mesma “fixture” como YAML:</p>\n<div class=\"code-block\" data-language=\"yaml\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">YAML</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=\"YAML code\"><code><span class=\"p p-Indicator\">-</span><span class=\"w\"> </span><span class=\"nt\">model</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">myapp.person</span>\n<span class=\"w\">  </span><span class=\"nt\">pk</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">1</span>\n<span class=\"w\">  </span><span class=\"nt\">fields</span><span class=\"p\">:</span>\n<span class=\"w\">    </span><span class=\"nt\">first_name</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">John</span>\n<span class=\"w\">    </span><span class=\"nt\">last_name</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">Lennon</span>\n<span class=\"p p-Indicator\">-</span><span class=\"w\"> </span><span class=\"nt\">model</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">myapp.person</span>\n<span class=\"w\">  </span><span class=\"nt\">pk</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">2</span>\n<span class=\"w\">  </span><span class=\"nt\">fields</span><span class=\"p\">:</span>\n<span class=\"w\">    </span><span class=\"nt\">first_name</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">Paul</span>\n<span class=\"w\">    </span><span class=\"nt\">last_name</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">McCartney</span>\n</code></pre></div>\n<p>Você armazenará este dado em um diretório <code class=\"docutils literal notranslate\"><span class=\"pre\">fixtures</span></code> dentro de sua app.</p>\n<p>Carregar dados é simples: apenas chame <a class=\"reference internal\" href=\"/pt-br/2.2/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">loaddata</span></code></a> <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fixturename&gt;</span></code>, onde <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fixturename&gt;</span></code> é o nome do arquivo de “fixture” que você criou. Cada vez que executar <a class=\"reference internal\" href=\"/pt-br/2.2/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">loaddata</span></code></a>, os dados serão lidos da “fixture” e recarregados no banco de dados. Isso significa que se você alterar uma de suas linhas do banco de dados criadas por uma fixture e então executar <a class=\"reference internal\" href=\"/pt-br/2.2/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">loaddata</span></code></a>  denovo, você irá perder qualquer alteração que tenha feito.</p>\n<section id=\"where-django-finds-fixture-files\">\n<h3>Onde o Django encontra arquivos de “fixture”<a class=\"heading-anchor\" href=\"#where-django-finds-fixture-files\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Por padrão, o Django procura por “fixtures” no diretório <code class=\"docutils literal notranslate\"><span class=\"pre\">fixtures</span></code> dentro de cada app. Você definir a <a class=\"reference internal\" href=\"/pt-br/2.2/ref/settings/#std-setting-FIXTURE_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FIXTURE_DIRS</span></code></a> como uma lista de diretórios adicionais onde o Django deve procurar.</p>\n<p>Quando chamar <a class=\"reference internal\" href=\"/pt-br/2.2/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">loaddata</span></code></a>, você pode especificar um caminho para o arquivo de “fixture”, o qual é procurado no lugar dos diretórios usuais.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Ver também</p>\n<p>As “Fixtures” são também usadas pelo <a class=\"reference internal\" href=\"/pt-br/2.2/topics/testing/tools/#topics-testing-fixtures\"><span class=\"std std-ref\">testing framework</span></a> para auxiliar na configuração de um ambiente de teste consistente.</p>\n</aside>\n</section>\n</section>","rootId":"providing-initial-data-for-models","toc":[{"title":"Provendo dados iniciais com migrations","anchor":"providing-initial-data-with-migrations","children":[]},{"title":"Provendo dados com fixtures.","anchor":"providing-data-with-fixtures","children":[{"title":"Onde o Django encontra arquivos de “fixture”","anchor":"where-django-finds-fixture-files","children":[]}]}],"breadcrumbs":[{"docname":"howto/index","title":"Guias de “como fazer”","url":"/pt-br/2.2/howto/"}],"prev":{"docname":"howto/upgrade-version","title":"Atualizando o Django para uma nova versão","url":"/pt-br/2.2/howto/upgrade-version/"},"next":{"docname":"howto/jython","title":"Django no Jython","url":"/pt-br/2.2/howto/jython/"},"formats":{"html":"/pt-br/2.2/howto/initial-data/","markdown":"/pt-br/2.2/howto/initial-data.md","json":"/pt-br/2.2/howto/initial-data.json"},"source":"https://github.com/django/django/blob/stable/2.2.x/docs/howto/initial-data.txt","official":"https://docs.djangoproject.com/pt-br/2.2/howto/initial-data/","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"]}