unknown runserver manage python django django-models

runserver - python manage.py syncdb



django syncdb y un modelo actualizado (7)

De Django 1.7 en adelante

Django ha incorporado soporte para migraciones: eche un vistazo a la documentación .

Para Django 1.6 y versiones anteriores

Django no admite migraciones listas para usar. Hay una aplicación enchufable para Django que hace exactamente eso, y funciona muy bien. Se llama South .

Recientemente he actualizado mi modelo y le he agregado BooleanField. Sin embargo, cuando hago python manage.py syncdb , no agrega el nuevo campo a la base de datos para el modelo. Cómo puedo arreglar esto ?


Como se sugirió en la respuesta principal, traté de usar South , y después de una hora de frustración con oscuros errores de migración decidí optar por Django Evolution .

Creo que es más fácil comenzar con South, y funcionó perfectamente la primera vez que ./manage.py evolve --hint --execute , así que estoy contento con eso.


Django actualmente no hace esto automáticamente. Tus opciones son:

  1. Suelta la tabla de la base de datos, luego recípala en forma nueva usando syncdb.
  2. Imprima SQL para la base de datos usando python manage.py sql (appname) , encuentre la línea agregada para el campo y agréguela manualmente usando el comando alter table SQL. (Esto también le permitirá elegir valores del campo para sus registros actuales).
  3. Usa el South (según la respuesta de Dominic ).

En django 1.6

  • Al principio hemos ejecutado - python manage.py sql <app name>

  • Entonces tenemos que ejecutar - python manage.py syncdb


Havent usó django en un momento, pero parece recordar que syncdb realiza los comandos alter en las tablas db. tienes que soltar la tabla y luego volver a ejecutar y creará de nuevo.

editar: lo siento NO se realiza alterar.


Si ejecuta Django con Apache y MySQL, reinicie apache después de realizar la migración con makemigrations .


Sigue estos pasos:

  1. Exporte sus datos a un dispositivo usando el dumpdata administración dumpdata
  2. Suelta la mesa
  3. Ejecute syncdb
  4. loaddata cargar sus datos desde el dispositivo utilizando el loaddata administración loaddata