python manage.py migrate appname --fake zeroEste comando borra todo el historial de South.
A continuación se tienen que borrar los ficheros.
rm appname/migrations/*En este momento ya tenemos el historial de South completamente limpio por lo que es necesario crear las nuevas migraciones:
python manage.py schemamigration appname --initial
python manage.py migrate appnameSi solamente queremos borrar el historial hasta un lugar concreto, hay que hacer lo siguiente:
python manage.py migrate appname --fake MIGRATION_NUMBEREl atributo --fake, indica que solamente se borran las migraciones de la base de datos, no afecta a lo que contiene la base de datos, es decir, no se aplican los cambios.
A continuación hay que borrar todos los archivos posteriores a la migración desde la que queremos partir que se encuentran en :
appname/migrationsA continuación creamos una nueva migración para guardar los cambios que hay en la base de datos. Al haber hecho "python manage.py migrate appname --fake MIGRATION_NUMBER", simplemente se han borrado las migraciones de la base de datos pero no se han aplicado los cambios, ahora lo que nos indica South y lo que hay en la base de datos es diferente por lo que es necesario hacer una nueva migración:
python manage.py schemamigration appname --autoEl siguiente paso que debemos hacer, es aplicar la migración:
python manage.py migrate appname
No hay comentarios:
Publicar un comentario