如何重置Django中的数据库? 我得到一个命令“重置”未find错误

在这个Django的示例tutotrial在这里: http ://lightbird.net/dbe/todo_list.html

教程说:

“这改变了我们的表格布局,我们不得不要求Django重置和重新创build表格:

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

但是,当我运行manage.py reset todo ,我得到的错误:

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

这是因为我使用sqlite3而不是postgresql?

有人可以告诉我什么命令是重置数据库?

命令: python manage.py sqlclear todo返回错误:

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

所以我在settings.py中向我的INSTALLED_APPS添加了“todo”,并再次运行python manage.py sqlclear todo ,导致出现此错误:

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

reset已被replace为与Django 1.5 flush ,请参阅:

 python manage.py help flush 

它看起来像“同花顺”的答案将适用于一些,但不是所有情况。 我不仅需要刷新数据库中的值,而且要正确地重新创build表。 我还没有使用迁移(早期),所以我真的需要删除所有的表。

在Heroku上,可以用pg删除所有表格:reset:

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

虽然manage.py'reset'被replace为'flush',但是Django Extensions仍然有一个方法可以完成一个完整的重置:

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

类似于LisaD的回答, Django扩展有一个很好的reset_db命令,它完全放弃了一切,而不是像“flush”一样截断表。 你必须指定一个路由器,所以它可能看起来像:

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

仅仅是刷新表格并不能解决我在删除对象时发生的持续性错误。 做一个reset_db修复了这个问题。

对我来说,这解决了这个问题。

 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 

如果要清理整个数据库,可以使用: python manage.py flush如果要清理Django应用程序的数据库表,可以使用: python manage.py migrate appname zero

只需跟进@ LisaD的答案。
截至2016年( Django 1.9 ),你需要input:

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

这将给你一个Heroku内新的数据库。

使用django 1.11,只需删除每个应用程序的migrations文件夹中的所有迁移文件(除__init__.py之外的所有文件)。 然后

  1. 手动删除数据库。
  2. 手动创build数据库。
  3. 运行python3 manage.py makemigrations
  4. 运行python3 manage.py migrate

而哇,你的数据库已经完全重置。