Tim*_*ans 21 python django django-models
python manage.py flush从整个项目中删除数据.我想能够做到python manage.py flush agivenapp我该怎么做?
Jer*_*zyk 15
sqlclear管理命令可以帮助...
Usage: ./manage.py sqlclear [options] <appname appname ...>
Prints the DROP TABLE SQL statements for the given app name(s).
Run Code Online (Sandbox Code Playgroud)
对于postgresql你可以做:
./manage.py sqlclear myapp | psql dbname
Run Code Online (Sandbox Code Playgroud)
具有迁移和Django 1.7+的应用程序的更新:
python manage.py migrate <app> zero
Run Code Online (Sandbox Code Playgroud)
Chr*_*our 10
您可以使用带有migrate两个位置参数的命令来执行此操作:
更新数据库架构.管理具有迁移的应用程序和没有迁移的应用程序.
位置参数:
app_label
用于同步状态的应用程序的App标签.
migration_name
数据库状态将在迁移后进入状态.使用名称"零"取消应用所有迁移.
因此,运行迁移零并随后迁移将仅清除给定应用程序的数据.
$ python manage.py migrate ${APPNAME} zero
$ python manage.py migrate ${APPNAME}
Run Code Online (Sandbox Code Playgroud)
小智 7
对于更高版本的 Django,请尝试在 Django shell 中:
from django.apps import apps
my_app = apps.get_app_config('my_app_name')
my_models = my_app.get_models()
for model in my_models:
model.objects.all().delete()
Run Code Online (Sandbox Code Playgroud)
有关该模块的更多信息可以在此处apps找到。当然,您可以使用管理基础架构自行将其转换为管理命令。