【发布时间】:2023-03-28 21:52:01
【问题描述】:
我有一个设置(Django 1.11),其中包含多个应用程序,包括 OOK、EEK 和其他不相关的应用程序。我想删除 OOK 的所有数据,同时保留 EEK(和其余部分)不变。理想情况下,我希望所有主键也被重置,这样第一个新的 OOK 模型将获得 1,依此类推……
这可能吗?
我能找到的只有reset 和sqlclear,它们都已弃用。 flush 删除了数据库中的所有数据,因此不是我想要的
我确实承认这是一件奇怪的事情,但这是给我的手……
【问题讨论】:
-
据我所知,分发
ids 是在数据库层发生的事情,因此 Django 对此没有什么好说的。您可以使用原始查询来执行此操作,但这可能不是一个好主意。 -
最简单的方法是使用
python manage.py flush,您可以阅读文档docs.djangoproject.com/en/1.11/ref/django-admin/#flush -
@WillemVanOnsem 我明白了,但这些是我必须遵守的要求。我很高兴处理原始 SQL,并且显然会在将要备份的主数据库上进行测试之前对其进行测试。
-
@Sardathrion 我的错误我没有正确阅读。所以在我看来,这听起来不太可能,但我会等待这个领域更相关的人的回答。
-
@Sardathrion:对于 MySQL,您可以使用 stackoverflow.com/a/8923132/67579 重置索引
标签: django