How to reset db in Django? I get a command 'reset' not found error


Following this Django by Example tutotrial here:

The tutorial says:

"This changes our table layout and we’ll have to ask Django to reset and recreate tables: reset todo; syncdb"

though, when I run reset todo, I get the error:

$ python reset todo                                       
- Unknown command: 'reset'

Is this because I am using sqlite3 and not postgresql?

Can somebody tell me what the command is to reset the database?

The command: python sqlclear todo returns the error:

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

So I added 'todo' to my INSTALLED_APPS in, and ran python sqlclear todo again, resulting in this error:

$ python sqlclear todo                                      
- NameError: name 'admin' is not defined
10/8/2013 2:20:19 PM

Accepted Answer

reset has been replaced by flush with Django 1.5, see:

python help flush
3/16/2013 8:00:52 PM

It looks like the 'flush' answer will work for some, but not all cases. I needed not just to flush the values in the database, but to recreate the tables properly. I'm not using migrations yet (early days) so I really needed to drop all the tables.

Two ways I've found to drop all tables, both require something other than core django.

If you're on Heroku, drop all the tables with pg:reset:

heroku pg:reset DATABASE_URL
heroku run python syncdb

If you can install Django Extensions, it has a way to do a complete reset:

python ./ reset_db --router=default

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow