现在复位已经消失,如何删除Django 1.4中一个应用程序的所有数据?

Ror*_*ory 6 django django-1.4

如何在Django应用程序中删除数据库中的所有数据?在之前的版本中manage.py reset APPNAME完成了这项工作,但已被弃用.

如果我们想要使用命令行删除应用程序中的所有数据,我们现在应该做什么?

Chr*_*att 15

reset并且sqlreset只是围绕其他管理命令的包装器.sqlreset特别是可以通过简单运行来复制:

python manage.py sqlclear myapp
python manage.py sqlall myapp
Run Code Online (Sandbox Code Playgroud)

reset仅用于自动运行sqlreset数据库的结果.就个人而言,我认为删除这是一个奇妙的想法.但是,如果您想要类似的功能,您可以将输出管道传输到数据库的shell命令.

对于PostgreSQL,例如:

python manage.py sqlclear myapp | psql mydatabase
python manage.py sqlall myapp | psql mydatabase
Run Code Online (Sandbox Code Playgroud)

  • 当你需要编写更多代码而不是一行代码时,为什么这是一个好主意?这个包装的缺点是什么? (3认同)

小智 8

如果你想要一个适用于大多数数据库类型的单一命令,你可以将sqlclear生成的drop table语句传递给dbshel​​l

python manage.py sqlclear myapp | python manage.py dbshell


Goi*_*oin 5

from django.contrib.contenttypes.models import ContentType
for ct in ContentType.objects.all()
    ct.model_class().objects.all().delete()
Run Code Online (Sandbox Code Playgroud)