2024-09-27 22:22:30 发布
网友
我有一个表名UGC,希望清除该表中的所有数据。我不想重置整个应用程序,这会删除所有其他模型中的所有数据。是否可以只清除一个模型?我也有South配置我的应用程序,如果这会有帮助。在
今天在django 2.0.2中遇到了这样的问题,因为我用
class Front(models.Model): pass
并迁移了它,但当我后来更新模型时,我无法运行 python manage.py makemigrations因为它说
python manage.py makemigrations
我的解决方案是什么?在
Front
python manage.py migrate
注意:注意上面的指令,因为它将删除表/模型的所有引用/外键,其中on_delete=models.CASCADE是默认值!
on_delete=models.CASCADE
在管理界面中,可以转到该模型的列表页面,然后可以选择所有模型并使用表顶部的Delete selected ...操作。在
Delete selected ...
请记住,无论以何种方式删除数据,外键默认为ON DELETE CASCADE,因此任何带有外键的模型都将被删除。管理界面将为您提供将要删除的模型的完整概述。在
ON DELETE CASCADE
您可以use raw SQL:
cursor.execute(“DROP TABLE UGC”)
或者您可以直接在Django shell中使用ORM:
这将删除数据(但不是表),因此您必须小心:)
另一种方法(为了完整性和利用South)是在模型声明中注释掉模型,然后迁移,然后再放回去(假设没有模型引用它)
高温
今天在django 2.0.2中遇到了这样的问题,因为我用
并迁移了它,但当我后来更新模型时,我无法运行
^{pr2}$python manage.py makemigrations
因为它说我的解决方案是什么?在
Front
python manage.py makemigrations
,它删除了麻烦的表/模型python manage.py makemigrations
,这将重新创建表/模型,最后python manage.py migrate
迁移了我的更改,所有的问题都解决了!在注意:注意上面的指令,因为它将删除表/模型的所有引用/外键,其中
on_delete=models.CASCADE
是默认值!在管理界面中,可以转到该模型的列表页面,然后可以选择所有模型并使用表顶部的
Delete selected ...
操作。在请记住,无论以何种方式删除数据,外键默认为
ON DELETE CASCADE
,因此任何带有外键的模型都将被删除。管理界面将为您提供将要删除的模型的完整概述。在您可以use raw SQL:
或者您可以直接在Django shell中使用ORM:
^{pr2}$这将删除数据(但不是表),因此您必须小心:)
另一种方法(为了完整性和利用South)是在模型声明中注释掉模型,然后迁移,然后再放回去(假设没有模型引用它)
高温
相关问题 更多 >
编程相关推荐