完全卸载 Django 应用程序并删除数据库的步骤是什么?
Django 应用程序是 * 的“集合”。Py 文件和一个具有 django-app-name 的目录。因此,您可以简单地删除整个文件夹与所有 * 。Py 文件
要从 DB 中“移除”表,应该使用 DELETE FROM <app-name_table-names>
DELETE FROM <app-name_table-names>
此外,还必须删除根目录中 seting.py 中包含 app-name 的行
Django < 1.7有一个方便的管理命令,它将为您提供必要的 SQL 来删除应用程序的所有表。有关更多信息,请参见 清楚的文件。基本上,运行 ./manage.py sqlclear my_app_name可以得到应该执行的 SQL 语句,以消除数据库中应用程序的所有跟踪。您仍然需要将这些语句复制并粘贴(或管道)到 SQL 客户机中。对于 Django 1.7及以上版本,请使用 ./manage.py migrate my_app_name zero(参见 迁徙文档) ,它会自动运行数据库清理。
./manage.py sqlclear my_app_name
./manage.py migrate my_app_name zero
要从您的项目中删除应用程序,所有您需要做的就是从您的项目的 settings.py中的 INSTALLED_APPS中删除它。姜戈将不再载入应用程序。
settings.py
INSTALLED_APPS
如果您不再希望应用程序的文件被挂起,请从您的项目目录或 PYTHONPATH 上的其他位置删除应用程序目录。
(可选)如果应用程序存储的媒体文件,缓存文件,或其他临时文件的地方,你可能想删除这些以及。同时也要小心那些可能从应用程序中遗留下来的延迟会话数据。
(可选)我也会删除任何陈旧的内容类型。
像这样。
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()
__pycache__
migrate
models.py
views.py
admin.py
urls.py
python manage.py migrate
python manage.py syncdb
在我的上下文中,这些项目存在好几次: 我有一个开发系统,一些团队成员有一个开发系统,有一个用于客户的分段系统和一个生产系统。这意味着我不想手动执行 sql 命令。我希望是自动化的。
目标: 删除应用程序和所有数据库表。
从应用程序中删除所有文件,除了文件夹“迁移”
执行以下命令:
python manage.py makemigrations -n drop_all_tables my_app_to_remove
目录现在看起来是这样的:
my_app_to_remove/ my_app_to_remove/__init__.py my_app_to_remove/migrations my_app_to_remove/migrations/0001_initial.py my_app_to_remove/migrations/.... my_app_to_remove/migrations/0030_drop_all_tables.py my_app_to_remove/migrations/__init__.py
将 my_app_to_remove保留在文件“ setings.py”中。
my_app_to_remove
更新所有项目。告诉团队成员更新他们的项目并运行迁移。
现在从 setings.py 中删除“ my _ app _ to _ remove”,然后再次部署。
安全删除 Django 应用程序作者: Jordan Haines
要完全删除 Django 应用程序(带有模型) ,请按照下面的步骤操作:
note_app.models
note_app.admin
makemigrations
Git
note_app
就是这样... 超级简单:)
作为第一步,防止任何应用程序模型的使用并进行部署。这对于滚动部署是必不可少的。检查下面的笔记。
那你有两个选择。
选择一
python manage.py migrate <app_name> zero
django_migrations
选择二
这个答案是在自动滚动部署上下文(例如 Heroku)中思考的。 手动部署意味着通常不能在自动部署中完成。部署基本上是指通常在自动部署中完成的 python manage.py migrate。
笔记
migrate <app_name> zero
参考文献