En este artículo, veremos un tema muy importante cuando se está desarrollando una aplicación web con Django, las reversiones de migraciones.
El sistema de migraciones de Django fue elaborado y optimizado para trabajar con una gran cantidad de migraciones.
Generalmente, todo debe fluir con normalidad, pero en determinadas ocasiones, se requiere de hacer una limpieza de todo lo aplicado.
Para tener una lista de las migraciones, se debe ejecutar el comando
manage.py showmigrations
La más sencilla de todas es borrar todo, incluyendo la base de datos, el procedimiento sería el siguiente (siempre respaldar antes de ejecutar un comando por lotes):
- Borrar todos archivos de migración a excepción del __init__.py, los comando a aplicar tanto en linux como en windows serían algo así:
- En Linux: find . -path "*migrations/*.py" -not -name __init__.py -delete
- En Windows: for /r %i in (migrations\*.py) do if not "%i"=="%~dpi__init__.py" del %i
- Borrar Base de Datos
- Crear Base de Datos
- Crear migraciones nuevamente
manage.py makemigrations
- Ejecutar migración
- manage.py migrate
La otra opción es reiniciar las migraciones para una aplicación (por ejemplo catalogos)
manage.py migrate --fake catalogos zero
Si después de reiniciarlas volvemos a consultar las migraciones, el resultado para la aplicación catálogos debería ser algo parecido a:
Como podrás ver la aplicación catálogo no tiene marcada las migraciones.
Bueno, hay otras opciones, ¿cuál otra conoces y puedes contribuir?
Para profundizar en Django 2.1, te invito a que te inscribas en el curso de Desarrollo de Aplicaciones Web con Python Usando Django 2.2 para Principiante (haciendo click sobre este enlace para más detalles).
Si quieres estar informado de nuevos artículos, registrate en el siguiente formulario (si aún no lo has hecho).
0 comentarios:
Publicar un comentario
¿Tienes algún comentario? ¿Qué te ha parecido este artículo? Cuéntalo.