O comando makemigrations do Django

Cansado de programar?

Cansado(a) de quebrar a cabeça para aprender a programar Python de verdade?

Conheça a melhor e mais completa formação de Python e Django e sinta-se um programador verdadeiramente competente. Além de Python e Django, você também vai aprender Banco de Dados, SQL, HTML, CSS, Javascript, Bootstrap e muito mais!

Quero aprender Python e Django de Verdade! Quero aprender!
Suporte

Tire suas dúvidas diretamente com o professor

Suporte

Projetos práticos voltados para o mercado de trabalho

Suporte

Formação moderna com foco na prática profissional

Salve salve Pythonista! :wave:

Nesse post, vamos ver o que o comando makemigrations faz, as opções do comando e o porquê de ele ser tão importante na vida do desenvolvedor Django!

Ajusta sua cadeira e vamos nessa!

Vá Direto ao Assunto…

Mas primeiro...

Eu disponibilizei gratuitamente a aula introdutória do nosso Curso de Django - que é parte integrante do curso Jornada Python, aqui da Python Academy - e acho que você pode aprender bastante com ela!

Nesse vídeo você vai aprender sobre:

  • Desenvolvimento Frontend vs Backend
  • Arquitetura do Django
  • Por que aprender Django
  • O mercado para o Desenvolvedor Django
  • O salário do Dev Django trabalhando para fora
  • Quais empresas utilizam o Django

É só clicar na imagem abaixo para assistir o vídeo!

Onde estamos…

Primeiramente, vamos nos situar…

Arquitetura do Django - Model

No primeiro post da nossa Série de Django, tratamos de conceitos introdutórios do framework, uma visão geral da sua arquitetura, sua instalacão e a criação do Hello World, Django.

Já no segundo post da Série, tratamos da camada Model, onde definimos as entidades do nosso sistema, a interface com o banco de dados e aprendemos como utilizar a API de acesso a dados provida pelo Django - que facilita muito nossa vida!

Agora, vamos ver o funcionamento de um dos comandos mais importantes da camada Model do Django: o makemigrations.

O comando makemigrations

O comando makemigrations analisa se foram feitas mudanças nos modelos e, em caso positivo, cria novas migrações (Migrations) para alterar a estrutura do seu banco de dados, refletindo as alterações feitas.

Vamos entender o que eu acabei de dizer: toda vez que você faz uma alteração em seu modelo, é necessário que ela seja aplicada à estrutura presente no banco de dados.

A esse processo é dado o nome de Migração!

De acordo com a documentação do Django:

Migração é a forma do Django de propagar as alterações feitas em seu modelo (adição de um novo campo, deleção de um modelo, etc…) ao seu esquema do banco de dados. Elas foram desenvolvidos para serem (a maioria das vezes) automáticas, mas cabe a você saber a hora de fazê-las, de executá-las e de resolver os problemas comuns que você possa vir a ser submetidos.

Portanto, toda vez que você alterar o seu modelo (models.py), não se esqueça: execute python manage.py makemigrations!

Ao executar esse comando no projeto que iniciamos no primeiro post sobre Django, devemos ter a seguinte saída:

1
2
3
4
5
$ python manage.py makemigrations

Migrations for 'helloworld':
  helloworld\migrations\0001_initial.py
    - Create model Funcionario

Observação: Talvez seja necessário executar o comando referenciando o app onde estão definidos os modelos: python manage.py makemigrations helloworld. Daí pra frente, apenas python manage.py makemigrations vai bastar!

Agora, podemos ver que foi criada uma pasta chamada migrations dentro de helloworld.

Dentro dela, você pode ver um arquivo chamado 0001_initial.py: ele contém a Migration que cria o model Funcionario no banco de dados (preste atenção na saída do comando makemigrations: Create model Funcionario :wink:)

:wave: Ei, você aí! Quer se sentir realmente capaz ao desenvolver Aplicações Web com Django? Então clique no link abaixo e dê o próximo passo agora mesmo!

Jornada Django

A Jornada Django foi pensada em quem já sabe Python e quer dar o próximo passo. Aqui você vai dominar o Desenvolvimento Web com o poderoso Django.

Vinícius Ramos
Vinícius Ramos 🇺🇸 Senior Software Engineer 🇧🇷 Fundador
Conhecer detalhes
Check
Suporte a dúvidas
Check
Certificado de Conclusão
Check
Comunidade de Alunos
Check
Cursos gratuitos de HTML
Check
Cursos gratuitos de CSS
Check
Cursos gratuitos de Javascript

Opções do comando makemigrations

Abaixo vamos ver as opções do comando.

  • --noinput ou --no-input: Evita prompts ao usuário. Muito útil quando esse comando for usado em scripts bash.
  • --empty: Produz uma migração vazia para os apps especificados, para edição manual. Isso é para usuários avançados e não deve ser usado, a menos que você esteja familiarizado com o formato da migração, as operações de migração e as dependências entre suas migrações.
  • --dry-run: Mostra quais migrações seriam feitas sem realmente gravar nenhum arquivo de migração no disco, ou seja, sem aplicar no banco de dados. O uso dessa opção junto com –verbosity 3 também mostrará os arquivos de migração completos que seriam gravados.
  • --merge: Permite corrigir conflitos de migrações.
  • --name NAME, -n NAME: Permite nomear as migrações geradas em vez de usar um nome gerado pelo Django. O nome deve ser um identificador Python válido.
  • --no-header: Gera arquivos de migração sem a versão do Django e o cabeçalho de data e hora (exige Django >= 2.2).
  • --check: Faz com que o comando makemigrations termine com um status diferente de zero quando alterações de modelo sem migrações são detectadas.

Está curtindo esse conteúdo? :thumbsup:

Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?

Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

Assine as PyDicas e receba 30 dias do melhor conteúdo Python na sua Caixa de Entrada: direto e sem enrolação!

Conclusão

Vimos nesse post como utilizar o comando makemigrations, suas opções e como ele facilita nossa vida (já imaginou fazer as migrações e resolvê-las na unha? :scream: :scream: :scream:).

É o Django facilitando nossa vida cada vez mais!

Quer levar esse conteúdo para onde for com nosso ebook GRÁTIS sobre Desenvolvimento Web com Python e Django?

Então aproveita essa chance :point_down: :point_down: :point_down:

Ebook GRÁTIS

DESENVOLVIMENTO WEB COM PYTHON E DJANGO

Capa Ebook Desenvolvimento Web com Python e Django

Conteúdo:

  • :point_right: Veja como modelar sua aplicação
  • :point_right: Utilize a robusta API de Acesso a Dados do Django
  • :point_right: Aprenda sobre Class Based Views
  • :point_right: Construa Middlewares próprios
  • :point_right: Desenvolva filtros e tags customizados para criar lindos templates
Baixe já!

Nos vemos por aí!

Bom desenvolvimento! :wink:

#newsletter Olá :wave: Curtiu o artigo? Então faça parte da nossa Newsletter! Privacidade Não se preocupe, respeitamos sua privacidade. Você pode se descadastrar a qualquer momento.