martes, 27 de noviembre de 2018

Revertir Migraciones en Django 2.1

#Revertir #Migration #Django #Python #PostgreSQL

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):
  1. 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í:


    1. En Linux:  find . -path "*migrations/*.py" -not -name __init__.py -delete
    2. En Windows:  for /r %i in (migrations\*.py) do if not "%i"=="%~dpi__init__.py" del %i
  2. Borrar Base de Datos
  3. Crear Base de Datos
  4. Crear migraciones nuevamente
    1. manage.py makemigrations
  5. Ejecutar migración
    1. 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.

 
>