135 votes

Comment faire pour réinitialiser db dans Django? Je reçois une commande "reset" ne trouve pas d'erreur

Suite à cette Django par Exemple tutotrial ici: http://lightbird.net/dbe/todo_list.html

Le tutoriel dit:

"Cela change notre table et nous allons demander Django pour réinitialiser et de recréer les tables:

manage.py reset todo; manage.py syncdb"

cependant, lorsque j'exécute manage.py reset todo, j'obtiens l'erreur:

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

Est-ce parce que je suis en utilisant sqlite3 et pas de postgresql?

Quelqu'un peut-il me dire quelle est la commande pour réinitialiser la base de données?

La commande: python manage.py sqlclear todo renvoie l'erreur:

$ python manage.py sqlclear todo    
CommandError: App with label todo could not be found.    
Are you sure your INSTALLED_APPS setting is correct?

J'ai donc ajouté "todo" pour mon INSTALLED_APPS dans settings.py et a couru python manage.py sqlclear todo nouveau, résultant de cette erreur:

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

189voto

robertklep Points 29669

reset a été remplacé par flush avec Django 1.5, voir:

python manage.py help flush

40voto

LisaD Points 334

C'est une réponse tardive mais je suis de répondre parce que j'ai eu un problème différent. Dans ma situation, je ne voulais pas seulement pour réinitialiser les données dans la base de données, mais pour détruire entièrement la base de données. J'ai essayé d'utiliser 'flush' puis 'syncdb", mais ce n'est pas les tables et les recréer avec les nouvelles colonnes. Je ne suis pas en utilisant les migrations encore (premiers jours) donc j'ai vraiment besoin d'abandonner toutes les tables.

J'ai résolu ce problème avec

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

De ce fait souffler les tableaux et en a créé de nouveaux, des tables vides avec toutes les nouvelles colonnes.

27voto

aendrew Points 1801

Semblable à LisaD réponse, Django Extensions a une grande reset_db commande totalement gouttes tout, au lieu de les tronquer les tables comme "flush" ne. Vous devez spécifier un routeur, il peut ressembler à:

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

Simple flushing les tables n'était pas la fixation d'une persistante erreur qui s'est produite lorsque j'ai été de supprimer des objets. Faire un reset_db résolu le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X