完全卸载Django应用程序,并删除数据库的步骤是什么?

推荐答案

  1. Django<;1.7有一个方便的管理命令,它将为您提供必要的SQL来删除应用程序的所有表.有关详细信息,请参阅sqlclear docs.基本上,运行./manage.py sqlclear my_app_name会让您获得应该执行的SQL语句,以消除数据库中应用程序的所有跟踪.您仍然需要将这些语句复制并粘贴(或通过管道)到您的SQL客户端.对于Django 1.7和更高版本,使用./manage.py migrate my_app_name zero(参见migrate个文档),它会自动运行数据库清理.

  2. 要从项目中删除该应用程序,您只需将其从项目settings.pyINSTALLED_APPS中删除即可.Django将不再加载该应用程序.

  3. 如果您不想再保留应用程序的文件,请从项目目录或PYTHONPATH上驻留的其他位置删除应用程序目录.

  4. (可选)如果应用程序在某个位置存储了媒体文件、缓存文件或其他临时文件,您可能也要删除这些文件.也要警惕可能是应用程序遗留下来的挥之不go 的会话数据.

  5. (可选)我还会删除所有过时的内容类型.

就像这样.

from django.contrib.contenttypes.models import ContentType
for c in ContentType.objects.all():
    if not c.model_class():
        print "deleting %s"%c # print(f"deleting {c}") # for Python 3.6+
        c.delete()

Django相关问答推荐

Django中有修改字段值的挂钩吗?

如何显示日期?

如何使用Django';S生成的字段来统计相关对象?

在生成的表单元素处出现多值DictKeyError

新的 Django 开发人员无法在网站上显示Hello World,而不是默认安装成功页面

如何在 Fargate 容器中运行的 Django 中使用 AWS SES?

使用 Pytest 在 Django 中编写测试用例时如何加载特定目录中的所有固定装置

data._mutable= 在 Django REST 框架中为真

Django ORM 查询优化问题

相同的字符串不同的翻译

使用 Django 一次更新多条记录

Django 相当于 COUNT 和 GROUP BY

Django:在模型管理器中获取模型的表名?

ImportError:升级到 Django 4.0 后无法从 'django.conf.urls' 导入名称 'url'

Django 默认=timezone.now + delta

django 静态文件版本控制

import_module 的 Django 1.9 ImportError

使用 Django 部署 Google Analytics

Django 模型:delete() 未触发

引发 404 并继续 URL 链