Fornecendo dados iniciais para modelos.¶
As vezes é útil para pré-popular seu banco de dados com dados codificados, enquanto você configura sua aplicação pela primeira vez. Você pode prover dados iniciais com fixtures ou migrations.
Fornecendo dados iniciais com “fixtures”¶
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 manage.py dumpdata
. Ou, você pode escrever fixtures manualmente; “fixtures” podem ser escritas como documentos JSON, XML ou YAML (com PyYAML installed). O documentos de serialização tem mais detalhes sobre cada um destes formatos de serialização.
Como exemplo, no entanto, aqui o que uma “fixture” para um simples modelo Person
se parece no formato json.
[
{
"model": "myapp.person",
"pk": 1,
"fields": {
"first_name": "John",
"last_name": "Lennon"
}
},
{
"model": "myapp.person",
"pk": 2,
"fields": {
"first_name": "Paul",
"last_name": "McCartney"
}
}
]
E aqui a mesma “fixture” como YAML:
- model: myapp.person
pk: 1
fields:
first_name: John
last_name: Lennon
- model: myapp.person
pk: 2
fields:
first_name: Paul
last_name: McCartney
Você armazenará este dado em um diretório fixtures
dentro de sua app.
Carregar dados é simples: apenas chame manage.py loaddata
<fixturename>
, onde <fixturename>
é o nome do arquivo de “fixture” que você criou. Cada vez que executar loaddata
, 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 loaddata
denovo, você irá perder qualquer alteração que tenha feito.
Onde o Django encontra arquivos de “fixture”¶
Por padrão, o Django procura por “fixtures” no diretório fixtures
dentro de cada app. Você definir a FIXTURE_DIRS
como uma lista de diretórios adicionais onde o Django deve procurar.
Quando chamar manage.py loaddata
, você pode especificar um caminho para o arquivo de “fixture”, o qual é procurado no lugar dos diretórios usuais.
Ver também
As “Fixtures” são também usadas pelo testing framework para auxiliar na configuração de um ambiente de teste consistente.