The migration files for each app live in a “migrations” directory inside of that app, and are designed to be committed to, and distributed as part of, its codebase. You should be making them once on your development machine and then running the same migrations on your colleagues’ machines, your staging machines, and eventually your production machines.
Observação
Caso alguém já tenha um conjunto de migrações mais granular, pode ser melhor que essa pessoa comite as migrações dela em vez de mim. (Por exemplo, se houverem migrações na máquina de prod, poderíamos comitá-las)/
Como eu estou entrando agora, tive que criar um migração initial, que era o que eu podia fazer.
Atenção
Antes de mergear esse PR, devemos ter um plano definido do que será feito na máquina de produção com relação às migrations.
Eu sugiro que a migration seja executada lá usando a opção --fake-initial (caso não haja migrações lá ainda):
--fake-initial
Allows Django to skip an app’s initial migration if all database tables with the names of all models created by all CreateModel operations in that migration already exist. This option is intended for use when first running migrations against a database that preexisted the use of migrations. This option does not, however, check for matching database schema beyond matching table names and so is only safe to use if you are confident that your existing schema matches what is recorded in your initial migration.
A mesma coisa teria que ser feita por todos os desenvolvedores em seus respectivos clones locais do projeto, caso eles já tenham um banco de dados local configurado.
O que foi feito
migrations
do .gitignore.makemigrations
para que ele criasse a migração inicial e comitei-a.Motivação
As migrações deveriam sempre ser comitadas, como descrito na documentação do Django:
Observação
Caso alguém já tenha um conjunto de migrações mais granular, pode ser melhor que essa pessoa comite as migrações dela em vez de mim. (Por exemplo, se houverem migrações na máquina de prod, poderíamos comitá-las)/
Como eu estou entrando agora, tive que criar um migração
initial
, que era o que eu podia fazer.Atenção
Antes de mergear esse PR, devemos ter um plano definido do que será feito na máquina de produção com relação às migrations.
Eu sugiro que a migration seja executada lá usando a opção
--fake-initial
(caso não haja migrações lá ainda):A mesma coisa teria que ser feita por todos os desenvolvedores em seus respectivos clones locais do projeto, caso eles já tenham um banco de dados local configurado.
https://docs.djangoproject.com/en/2.0/ref/django-admin/#cmdoption-migrate-fake-initial