Si no se preocupan por los datos:
mejor manera sería dejar caer la base de datos y ejecutar syncdb
nuevo. O puede ejecutar:
Para Django> = 1,5
python manage.py flush
Para Django < 1,5
python manage.py reset appname
(puede agregar --no-input
al final del comando para que omita el modo interactivo, .)
Si le importan los datos:
A partir de los documentos:
syncdb sólo creará tablas para modelos que aún no han sido instalados . Nunca emitirá instrucciones ALTER TABLE para hacer coincidir los cambios realizados con una clase de modelo después de la instalación. Los cambios en las clases de modelos y bases de datos a menudo implican algún tipo de ambigüedad de y, en esos casos, Django tendría que adivinar los cambios correctos que se deben realizar. Existe el riesgo de que datos críticos se pierdan en el proceso .
Si ha realizado cambios en un modelo y el deseo de alterar las tablas de la base a la altura, utilice el comando SQL para pantalla la nueva estructura SQL y Compare esto con la tabla existente esquema para trabajar en los cambios .
https://docs.djangoproject.com/en/dev/ref/django-admin/
Referencia: FAQ - https://docs.djangoproject.com/en/dev/faq/models/#if-i-make-changes-to-a-model-how-do-i-update-the-database
Las personas también recomiendan Sur (http://south.aeracode.org/docs/about.html#key-features), pero no lo han intentado.
Sur es muy, muy bueno para manejo automático de migraciones. Toma un poco de tiempo acostumbrarse, pero ahorra una gran cantidad de caídas y recreación de bases de datos durante el desarrollo, y es imprescindible una vez que su sitio está activo y necesita modificar la estructura db mientras tiene datos valiosos en él. – thepeer
No tengo la opción Restablecer "reinicio de comando desconocido" – user798719
** RESTABLECER COMANDO DEPRECIADO **. En Django 1.5 el comando se ha actualizado a 'flush'. intente utilizar 'python manage.py flush' o' python manage.py flush --noinput' para omitir el aviso interactivo. – agconti