Django Sites Framework: local de migração inicial de dados
Antes do Django 1.7, ao usar oEstrutura de Sites Django pode-se / deve-se definir os dados iniciais usandoLuminárias Iniciais.
myproject / fixtures / initial_data.json[
{
"pk": 1,
"model": "sites.site",
"fields": {
"domain": "domain1",
"name": "name1"
}
},
{
"pk": 2,
"model": "sites.site",
"fields": {
"domain": "domain2",
"name": "name2"
}
},
{
"pk": 3,
"model": "sites.site",
"fields": {
"domain": "domain3",
"name": "name3"
}
}
]
Como é uma configuração global do projeto, adicionei uma pasta "fixtures" à raiz do projeto e a adicionei ao FIXTURE_DIRS.
# Used to search fixture files directories.
# Fixture files are files that provide initial data to be
# inserted in the database. (>python manage.py loaddata)
FIXTURE_DIRS = [
os.path.join(PROJECT_ROOT, "fixtures"),
]
Agora, estou usando o Django 1.7, e é recomendável usarmigrações. Citando a documentação do Django:
Para definir o nome e o domínio corretos para o seu projeto, você pode usar uma migração de dados.
O problema éAs migrações são específicas do aplicativo:
python manage.py makemigrations --empty yourappname
Então, qual é a abordagem recomendada para adicionar as informações do site ao meu projeto usando uma migração de dados? Onde essa migração deve morar?
Corridapython manage.py makemigrations --empty sites
cria a migração na pasta do aplicativo de terceiros, por isso não queremos isso.
Não deve ser possível definir um MIGRATION_DIRS como FIXTURE_DIRS para os dados iniciais?
eu encontreiMIGRATION_MODULES na documentação das configurações, mas o problema ainda permanece, é específico do aplicativo.