如何删除 运行 syncdb 之后的所有数据?

How do you remove all data after running syncdb?

我正在生产中,只是 运行 syncdb 但我犯了一个错误,想删除 syncdb 所做的,包括表中的所有数据都可以。只是在数据库中重新开始,所以我可以再次 运行 syncdb

(virtualenv-2.7)[root@server mysite]# python manage.py sqlclear mainapp | python manage.py dbshell
CommandError: One or more models did not validate:
app.comment: 'poster' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.
app.myuser: The field named as the USERNAME_FIELD should not be included in REQUIRED_FIELDS on a swappable User model.

重新创建数据库可能是最好的方法。您也可以使用 django-extensions 包中的 reset_db 管理命令来完成。

Django 1.7 支持migrate 您只需在编辑后再次 运行 python manage.py migrate 即可。 查看更多功能:release note

正如 J0HN 在评论中所述,重新开始的最佳做法实际上就是删除数据库。我以为它可能会把事情搞砸,但它不会。只需登录 mysql.

drop database whatever_your_database_name;
create databse whatever_your_database_name;

然后简单地与 python manage.py syncdb

再次同步

也许是懒惰,但我运行:

django-admin.py reset_db --router=default --noinput