Gab*_*ley 139
Django <1.7有一个方便的管理命令,它将为您提供必要的SQL来删除应用程序的所有表.有关更多信息,请参阅sqlclear文档.基本上,运行./manage.py sqlclear my_app_name
可以让你获得应该执行的SQL语句,以消除数据库中应用程序的所有痕迹.您仍然需要将这些语句复制并粘贴(或管道)到SQL客户端.对于Django 1.7及更高版本,请使用./manage.py migrate my_app_name zero
(请参阅迁移文档),它会自动运行数据库清理.
要从项目中删除应用程序,您只需将其从INSTALLED_APPS
项目中删除即可settings.py
.Django将不再加载应用程序.
如果您不再需要应用程序的文件,请从项目目录或PYTHONPATH所在的其他位置删除应用程序目录.
(可选)如果应用程序在某处存储了媒体文件,缓存文件或其他临时文件,您可能也想要删除它们.还要警惕可能从应用程序中遗留下来的延迟会话数据.
(可选)我还会删除任何陈旧的内容类型.
像这样.
from django.contrib.contenttypes.models import ContentType
for c in ContentType.objects.all():
if not c.model_class():
print "deleting %s"%c
c.delete()
Run Code Online (Sandbox Code Playgroud)
Vad*_*dim 15
settings.py
在INSTALLED_APPS
不必要的应用程序行中注释掉__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
Run Code Online (Sandbox Code Playgroud)
该目录现在看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
留my_app_to_remove
在文件“settings.py”中。
更新所有项目。告诉团队成员更新他们的项目并运行迁移。
现在从 settings.py 中删除“my_app_to_remove”并再次部署。
归档时间: |
|
查看次数: |
64674 次 |
最近记录: |