with tutorial postgres instalar configurar conectar con python database django reset

python - tutorial - setting up postgres django



Cómo restablecer db en Django? Aparece un error de ''restablecimiento'' de comando no encontrado (9)

Siguiendo este Django por ejemplo tutotrial 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 restablezca y vuelva a crear las tablas:

manage.py reset todo; manage.py syncdb manage.py reset todo; manage.py syncdb "

sin embargo, cuando ejecuto manage.py reset todo , obtengo el error:

$ python manage.py reset todo - Unknown command: ''reset''

¿Esto es 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 ejecuté python manage.py sqlclear todo nuevo, lo que python manage.py sqlclear todo este error:

$ python manage.py sqlclear todo - NameError: name ''admin'' is not defined


Con django 1.11, simplemente elimine todos los archivos de migrations carpeta de migrations de cada aplicación (todos los archivos excepto __init__.py ). Entonces

  1. Extraer manualmente la base de datos.
  2. Crear manualmente la base de datos.
  3. Ejecute python3 manage.py makemigrations .
  4. Ejecute python3 manage.py migrate .

Y voilla, tu base de datos ha sido completamente restablecida.


De forma similar a la respuesta de LisaD, Django Extensions tiene un gran comando reset_db que lo elimina por completo, en lugar de simplemente truncar las tablas como lo hace "flush". Debe especificar un enrutador, por lo que puede verse así:

python ./manage.py reset_db --router=default

El solo hecho de descargar las tablas no solucionaba un error persistente que ocurría cuando borraba objetos. Hacer un reset_db solucionó el problema.


Para mí, esto resolvió el problema.

heroku pg:reset DATABASE_URL heroku run bash >> Inside heroku bash cd app_name && rm -rf migrations && cd .. ./manage.py makemigrations app_name ./manage.py migrate


Parece que la respuesta ''flush'' funcionará para algunos, pero no para todos los casos. Necesitaba no solo vaciar los valores en la base de datos, sino también recrear las tablas correctamente. Todavía no estoy usando migraciones (primeros días), así que realmente necesitaba abandonar todas las tablas.

En Heroku uno puede colocar todas las tablas con pg: reset:

heroku pg:reset DATABASE_URL heroku run python manage.py syncdb

Y aunque manage.py ''reset'' fue reemplazado por ''flush'', Django Extensions tiene una manera de hacer un reinicio completo:

python ./manage.py reset_db --router=default


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


Si está utilizando migraciones, este link tiene una serie de soluciones según el escenario.


Solo un seguimiento de respuesta de .
A partir de 2016 ( Django 1.9 ), debe escribir:

heroku pg:reset DATABASE_URL heroku run python manage.py makemigrations heroku run python manage.py migrate

Esto te dará una base de datos nueva y fresca dentro de Heroku.


si estás usando Django 2.0 entonces

python manage.py flush

trabajará


reset ha sido reemplazado por el flush con Django 1.5, ver:

python manage.py help flush