variable template examples django migration django-south

examples - import django template



Migración hacia atrás con Django Sur. (3)

Ok, entonces esto parece algo realmente tonto de preguntar, y estoy seguro de que me estoy perdiendo algo en algún lugar.

¿Cómo se realiza una migración hacia atrás utilizando South en Django?

Así que modifiqué mis modelos, creé una migración con schemamigration , schemamigration migración con schemamigration , y ahora me doy cuenta de que eso no es lo que quería y lo quiero de la forma anterior.

Aparte de editar manualmente las tablas db y eliminar los archivos de migración, ¿cómo debo hacer para revertir la migración? Encuentro referencias a migraciones hacia atrás usando South a través de Google, pero todavía tengo que encontrar un ejemplo de código sólido para ello.

¿Alguien puede ayudar?


Agregue un nombre de migración al final de los parámetros:

./manage.py migrate app-name 00xx-migration-name


Debe averiguar el número de la migración justo antes de la que desea revertir.

Su aplicación debe tener un directorio de migraciones, con los archivos en ella nombrados como

0000_initial.py 0001_added_some_fields.py 0002_added_some_more_fields.py 0003_deleted_some_stuff.py

Normalmente, cuando ejecuta ./manage.py migrate your_app , South ejecuta todas las nuevas migraciones, en orden. (Mira las tablas de la base de datos para decidir cuáles son ''nuevas'').

Sin embargo, también puede especificar cualquier migración por número, y South migrará su base de datos, ya sea hacia adelante o hacia atrás , para llevarla a ese punto. Entonces, con los archivos de ejemplo anteriores, si ya ha migrado hasta 0003 y desea ejecutar 0003 en reversa (deshacerlo, efectivamente), ejecutaría

./manage.py migrate your_app 0002

South miraría la base de datos, se daría cuenta de que ya ha ejecutado 0003 y determinará que debe ejecutar la migración inversa de 0003 para volver a 0002.


En caso de que alguien (como yo) se haya preguntado cómo volver a migrar desde la inicial (0001) :

django-admin.py migrate some_app zero

salida:

Running migrations for some_app: - Migrating backwards to zero state. < some_app:0001_initial

"cero" es un estado especial antes de cualquier migración.

Referencia: http://south.aeracode.org/docs/commands.html