Siguiendo este tutorial de Django por ejemplo aquí: http://lightbird.net/dbe/todo_list.html
El tutorial dice:
"Esto cambia el diseño de nuestra tabla y tendremos que pedirle a Django que reinicie y vuelva a crear las tablas:
manage.py reset todo; manage.py syncdb
"
aunque, cuando corro manage.py reset todo
, aparece el error:
$ python manage.py reset todo
- Unknown command: 'reset'
¿Es esto porque estoy usando sqlite3 y no postgresql?
¿Alguien puede decirme cuál es el comando para restablecer la base de datos?
El comando: python manage.py sqlclear todo
devuelve el error:
$ python manage.py sqlclear todo
CommandError: App with label todo could not be found.
Are you sure your INSTALLED_APPS setting is correct?
Así que agregué 'todo' a mi INSTALLED_APPS en settings.py y volví a ejecutar python manage.py sqlclear todo
, lo que resultó en este error:
$ python manage.py sqlclear todo
- NameError: name 'admin' is not defined
Respuestas:
reset
ha sido reemplazado porflush
con Django 1.5, ver:fuente
Parece que la respuesta 'flush' funcionará en algunos casos, pero no en todos. Necesitaba no solo vaciar los valores en la base de datos, sino recrear las tablas correctamente. Todavía no estoy usando migraciones (primeros días), así que realmente necesitaba eliminar todas las tablas.
He encontrado dos formas de eliminar todas las tablas, ambas requieren algo diferente al núcleo de django.
Si está en Heroku, elimine todas las tablas con pg: reset:
Si puede instalar extensiones de Django, tiene una forma de hacer un reinicio completo:
fuente
INSTALLED_APPS
ensettings.py
.Similar a la respuesta de LisaD, Django Extensions tiene un gran comando reset_db que descarta totalmente todo, en lugar de simplemente truncar las tablas como lo hace "flush".
python ./manage.py reset_db
El simple hecho de vaciar las tablas no estaba solucionando un error persistente que ocurría cuando estaba eliminando objetos. Hacer un reset_db solucionó el problema.
fuente
--router
argumento, ¿tal vez eso sea opcional ahora, cinco años después? :)si está usando Django 2.0 Entonces
trabajará
fuente
Si desea limpiar toda la base de datos, puede usar: python manage.py flush Si desea limpiar la tabla de la base de datos de una aplicación Django, puede usar: python manage.py migrate appname zero
fuente
Con django 1.11, simplemente elimine todos los archivos de migración de la
migrations
carpeta de cada aplicación (todos los archivos excepto__init__.py
). Luegopython3 manage.py makemigrations
.python3 manage.py migrate
.Y voilla, su base de datos se ha restablecido por completo.
fuente
python3 manage.py makemigrations
ypython3 manage.py migrate
se encargará de eso, al menos en django 2.0Para mí, esto resolvió el problema.
fuente
Solo un seguimiento de la respuesta de @ LisaD .
A partir de 2016 (
Django 1.9
), debe escribir:Esto le dará una nueva base de datos dentro de Heroku.
fuente
Simplemente elimine manualmente su base de datos. Asegúrese de crear una copia de seguridad primero (en mi caso, db.sqlite3 es mi base de datos)
Ejecuta este comando
manage.py migrate
fuente
eliminado el contenido antiguo de la base de datos,
No olvide crear un nuevo superusuario:
fuente