Siguiendo este Django por Ejemplo tutotrial aquí: http://lightbird.net/dbe/todo_list.html

Que dice el tutorial:

«Esto cambia nuestro diseño de la mesa y vamos a tener que pedir Django para restablecer
y volver a crear tablas:

manage.py reset todo; manage.py syncdb«

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

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

Es porque estoy usando sqlite3 y no postgresql?

Puede alguien 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 he añadido ‘todo’ a mi INSTALLED_APPS en settings.py y corrió python manage.py sqlclear todo de nuevo, resultando en este error:

$ python manage.py sqlclear todo                                      
- NameError: name 'admin' is not defined
InformationsquelleAutor Prem | 2013-03-16

11 Comentarios

  1. 131

    reset ha sido sustituido por flush con Django 1.5, consulte:

    python manage.py help flush
    • Lamentablemente esto no funciona en aplicaciones individuales como manage.py reset <aplicación> hizo. Esto resulta en un error: CommandError: Comando no acepta argumentos
    • Por suerte, alguien portado de nuevo 1.5 🙂
    • gracias, es bueno saberlo, reciente (última modificación hace 6 meses) público django documentación acerca de los partidos todavía (2019-07-11) habla de ‘reset’: code.djangoproject.com/wiki/Fixtures
    • flush? ras palabra para limpiar una base de datos? lo que está pasando con python… nombre de todo de manera diferente, por lo que la razón. A ser especial? tan triste
  2. 30

    Se parece a la de «descarga» respuesta va a funcionar para algunos, pero no todos los casos. Necesitaba no sólo para tirar de los valores en la base de datos, pero para recrear las tablas correctamente. Yo no estoy usando las migraciones todavía (primeros días), por lo que realmente se necesita para borrar todas las tablas.

    Dos maneras que he encontrado para soltar todas las tablas, ambos requieren de algo distinto de núcleo de django.

    Si estás en Heroku, borrar todas las tablas con pg:reset:

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

    Si se puede instalar Django Extensiones, tiene una manera de hacer un reset completo:

    python ./manage.py reset_db --router=default
    • Estoy consiguiendo: Unknown command: 'reset_db'
    • usted tiene que instalar django-extensiones en primer lugar.
    • Además, es necesario que la han incluido bajo INSTALLED_APPS en settings.py.
  3. 19

    Similar a LisaD la respuesta, Django Extensiones tiene una gran reset_db comando que totalmente gotas todo, en lugar de truncar las tablas como «de color» no. Usted tiene que especificar un router, por lo que se puede ver como:

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

    Simplemente vaciar las tablas no fue la fijación de un error persistente que ocurrió cuando tenía la eliminación de objetos. Haciendo un reset_db se ha solucionado el problema.

    • Esto era lo que yo estaba buscando, pero no he tenido que proporcionar un --router argumento, tal vez eso es opcional ahora, cinco años más tarde? 🙂
  4. 8

    Con django 1.11, simplemente eliminar todos los archivos de migración de la migrations carpeta de cada aplicación (todos los archivos excepto __init__.py). Luego

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

    Y voilla, su base de datos ha sido completamente reset.

    • si el uso de sqlite, no hay necesidad de crear manualmente la base de datos, python3 manage.py makemigrations y python3 manage.py migrate tendrá cuidado de que, al menos en django 2.0
  5. 7

    Si quieres limpiar toda la base de datos, puede utilizar:
    python manage.py ras
    Si desea limpiar la base de datos de la tabla de una aplicación de Django, se puede utilizar:
    python manage.py migrar appname cero

  6. 4

    Para mí esta solucionado 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
  7. 2

    Sólo de un seguimiento de @LisaD del respuesta.

    A partir del 2016 (Django 1.9), deberá tipo:

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

    Esto le dará una nueva base de datos en Heroku.

  8. 1
    1. Acaba de eliminar manualmente usted de la base de datos. Asegúrese de crear la copia de seguridad en primer lugar (en mi caso db.sqlite3 es mi base de datos)

    2. Ejecutar este comando manage.py migrate

  9. 0
    python manage.py flush

    se eliminó el antiguo db contenido,

    No te olvides de crear nuevos superusuario:

    python manage.py createsuperuser

Dejar respuesta

Please enter your comment!
Please enter your name here