¿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?

Seppo Erviälä
fuente

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.

ChillarAnand
fuente
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

jsh
fuente
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