Neste artigo, criaremos um modelo básico de um aplicativo. Digamos, temos um projeto geeksforgeeks em que criaremos um novo aplicativo para simplificar e fazer unidades de modelo independentes.

Para criar um comando de execução de aplicativo por meio do terminal:

geeks de python manage.py startapp

e adicionar geeks à lista INSTALLED_APPS em settings.py. Agora a estrutura do diretório do aplicativo será,

Django-Basic-App-Model-Makemigrations-and-MigrateDjango-basic-app-structure-

Agora vá para o models.py aplicativo geeks, aqui vamos criar nosso primeiro modelo. Para criar um modelo, você precisa primeiro importar o modelo da django.db.modelsbiblioteca.



Agora models.py se parecerá com,

from django.db.models import Model 

De acordo com a documentação do Django , um modelo é a única fonte definitiva de informações sobre seus dados. Ele contém os campos e comportamentos essenciais dos dados que você está armazenando. Geralmente, cada modelo é mapeado para uma única tabela de banco de dados.

Django fornece vários campos e métodos predefinidos para criar um modelo. Para criar um modelo, você precisa primeiro especificar um nome de modelo.

Insira o seguinte código em models.py

from django.db import models 
from django.db.models import Model 
class GeeksModel(Model): 
    pass

A sintaxe semelhante sempre seria usada para criar um modelo.
Depois de fazer qualquer alteração em qualquer arquivo de modelos do aplicativo, você precisa executar o seguinte comando no terminal

 Python manage.py makemigrations

Após este comando, execute o seguinte comando para finalmente implementar as alterações do banco de dados de acordo

 Python manage.py migrate 

Depois de executar makemigrations e migrar, uma nova tabela será criada no banco de dados. Você pode verificar em geeks -> makemigrations -> 0001_initial.py.

  
from django.db import migrations, models 
  
  
class Migration(migrations.Migration): 
    initial = True
  
    dependencies = [] 
  
    operations = [ 
        migrations.CreateModel( 
            name ='GeeksModel', 
            fields =[ 
                ('id', models.AutoField(auto_created = True, 
                  primary_key = True, serialize = False, 
                  verbose_name ='ID')),], ), 
    ] 

Vamos entender claramente o que Makemigrations e Migrate fazem.

Makemigrations -

makemigrations basicamente gera os comandos SQL para aplicativos pré-instalados (que podem ser vistos em aplicativos instalados em settings.py) e o modelo de seus aplicativos recém-criados que você adiciona aos aplicativos instalados. Ele não executa esses comandos em seu arquivo de banco de dados. Portanto, as tabelas não são criadas após as makemigrações.

Depois de aplicar makemigrations, você pode ver os comandos SQL com sqlmigrate que mostra todos os comandos SQL que foram gerados por makemigrations. Para verificar mais sobre makemigrations visite - Django App Model - Comando Python manage.py makemigrations

Migrar -

migrate executa esses comandos SQL no arquivo de banco de dados. Então, depois de executar a migração, todas as tabelas de seus aplicativos instalados são criadas em seu arquivo de banco de dados.

Você pode confirmar isso instalando o navegador sqlite e abrindo db.sqlite3você pode ver que todas as tabelas aparecem no arquivo de banco de dados após a execução do comando migrate. Para verificar mais sobre makemigrations visite Django manage.py migrate command | Python