Según la documentación, las migraciones son la forma en que Django propaga los cambios que realiza en sus modelos (agregar un campo, eliminar un modelo, etc.) en el esquema de su base de datos. Están diseñados para ser en su mayoría automáticos, pero necesitará saber cuándo realizar migraciones, cuándo ejecutarlas y los problemas comunes con los que se puede encontrar.
makemigrations se ejecutan a través del siguiente comando
Python manage.py makemigrations
Si los comandos anteriores dicen que no se detectaron cambios, también puede hacerlo para aplicaciones individuales.
Por ejemplo, si tiene 10 aplicaciones llamadas a, b, c, d, e, f, g, h, i, j. Puede ejecutar makemigrations individualmente para estas aplicaciones.
Python manage.py makemigrations a
Python manage.py makemigrations b
Python manage.py makemigrations c
y así.
Migraciones del modelo de la aplicación Django
makemigrations básicamente genera los comandos SQL para las aplicaciones preinstaladas (que se pueden ver en las aplicaciones instaladas en settings.py) y el modelo de las aplicaciones recién creadas que agrega en las aplicaciones instaladas. No ejecuta esos comandos en su archivo de base de datos. Por lo tanto, las tablas no se crean después de realizar migraciones.
Después de aplicar makemigrations, puede ver esos comandos SQL con sqlmigrate, que muestra todos los comandos SQL generados por makemigrations.
Por ejemplo, si hacemos una clase modelo-
from django.db import models class Person(models.Model): first_name = models.CharField(max_length = 30) last_name = models.CharField(max_length = 30)
El comando sql correspondiente después de usar makemigrations será
CREATE TABLE myapp_person ( "id" serial NOT NULL PRIMARY KEY, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL );
y usando el comando anterior, la tabla se creará en la base de datos cuando usemos la migración.
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA