¿Cómo migrar desde la migración inicial en Django 1.7?


117

Creé una nueva aplicación con algunos modelos y ahora noté que algunos de los modelos están mal pensados. Como no he comprometido el código, lo sensato sería migrar la base de datos al último buen estado y rehacer la migración con mejores modelos. En este caso, el último buen estado es la base de datos donde la nueva aplicación no existe.

¿Cómo puedo volver a migrar desde la migración inicial en Django 1.7?

En Southuno podría hacer:

python manage.py migrate <app> zero

Lo cual eliminaría <app>del historial de migración y eliminaría todas las tablas de <app>.

¿Cómo hacer esto con las migraciones de Django 1.7?

Respuestas:


197

También puede hacer lo mismo con Django 1.7+:

python manage.py migrate <app> zero

Esto borra <app>del historial de migración y elimina todas las tablas de<app>

Consulte la documentación de django para obtener más información.


7
¿Está esto documentado en alguna parte? La documentación de django sobre migraciones es muy deficiente ...
— rnevius

2
Doc se puede encontrar en la página de documentación django-admin y manage.py: docs.djangoproject.com/en/1.7/ref/django-admin/…
— n__o

@no, gracias. Respuesta actualizada.
— ChillarAnand

1
¿Cómo manejaría IntegrityError: NOT NULL falló la restricción?
— wasabigeek

2
Intenté esto en Django 1.9 y también funcionó bien. Gracias
— Dário

9

también puede utilizar el número de versión:

python manage.py migrate <app> 0002

Fuente: https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-migrate


5
La pregunta que se hace es sobre la migración de regreso desde la migración inicial , y el uso 0000no funciona
— guival

Ya veo, es posible que haya entendido mal la pregunta (aunque no está particularmente bien escrita en mi humilde opinión). ¿Por qué no dejaría simplemente el DB? oh bueno
— jsh

2
eliminar toda la base de datos para una mesa es un poco exagerado
— guival
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.