Django:如何完全卸载Django应用程序?
完全卸载Django应用程序并删除数据库的过程是什么?Django应用程序是一组*.py文件和一个带有Django应用程序名称的目录。因此,您可以简单地删除包含所有*.py文件的整个文件夹 要从数据库中“删除”表格,应使用Django:如何完全卸载Django应用程序?,django,Django,完全卸载Django应用程序并删除数据库的过程是什么?Django应用程序是一组*.py文件和一个带有Django应用程序名称的目录。因此,您可以简单地删除包含所有*.py文件的整个文件夹 要从数据库中“删除”表格,应使用DELETE from 此外,您必须从根目录的setting.py中删除带有app name的行 Django
DELETE from
此外,您必须从根目录的setting.py中删除带有app name的行
/manage.py sqlclear my_app_name
可以获得应该执行的SQL语句,从而消除数据库中应用程序的所有痕迹。您仍然需要将这些语句复制并粘贴(或通过管道)到SQL客户机中。对于Django 1.7及更高版本,请使用/manage.py migrate my_app_name zero
(请参阅文档),它会自动运行数据库清理设置.py中的已安装的应用程序中删除即可。Django将不再加载该应用程序
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()
已安装的应用程序中的设置.py
\uuuu pycache\uuu
和migrate
models.py中不必要的模型
views.py
,admin.py
end等中的所有导入链接url.py
中的所有链接python manage.py migrate
和python manage.py syncdb
也许它需要在两次代码更新中进行调整-但是当您必须处理许多部署(如:测试阶段、BETA版本和生产-在我的情况下)时,它看起来非常安全。在我的环境中,项目存在好几次:我有一个开发系统,一些团队成员有一个开发系统,客户和生产系统都有一个暂存系统。这意味着我不想手动执行sql命令。我希望它是自动化的 目标:删除应用程序和所有数据库表 步骤1:清空应用程序,但保持安装状态 从应用程序中删除除文件夹“migrations”之外的所有文件 执行此命令:
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
在文件“settings.py”中保留my\u app\u以删除
步骤2:部署更改
更新所有项目。告诉团队成员更新他们的项目并运行迁移
步骤3:从settings.py中删除“my_app_to_remove”
现在从settings.py中删除“我的应用程序”并重新部署。
要完全删除Django应用程序(带型号),请执行以下步骤。让我们假设我们正在删除一个名为note\u app
的应用程序:
在其他应用程序中搜索任何note_应用程序导入。最简单的方法是在项目范围内搜索“from note_app”。您可能希望从搜索中排除note_应用程序目录
注释掉应用程序模型中的所有模型。如果您向Django admin注册了note_应用程序模型,您可能还需要从note_app.admin
文件中删除条目
尝试运行Django应用程序时查找并解决错误。另外,您可能在步骤1中遗漏了一些模型导入
请注意,根据您定义ForeignKey、OneToOne和ManyToMany字段的方式,您可能在步骤1中遗漏了Note_应用程序模型的一些键。重要的是,在继续之前,需要删除指向其他应用程序模型中的应用程序模型的任何字段。花一分钟确保这些字段没有遗漏;如果是,则删除保留的字段,并创建迁移以从数据库中删除这些字段
运行makemigrations
。这将创建一个note_应用程序迁移,删除您刚才推荐的所有模型。此迁移还应从其他应用程序的模型中删除引用note_应用程序模型的字段
运行您的迁移。在删除应用程序目录之前,必须在所有环境(包括生产环境)中运行迁移。从数据库中删除应用程序模型的迁移将意外地出现在您的note_应用程序目录中。如果过早删除应用程序目录,则将在迁移有机会清理数据库之前删除这些迁移
您可能会注意到,已删除模型的内容类型已过时。当被问及是否要删除这些内容类型时,回答“是”
Git
提示:提交迁移,记下提交,然后创建一个单独的提交,删除note\u应用程序目录。当您准备在登台或生产环境中应用更改时,请签出您注意到的提交,运行迁移,然后签出最新的提交以删除应用程序目录。您的第一次提交在已安装的应用程序中仍应包含note\u应用程序
删除包含便笺应用程序的目录
从已安装的应用程序中删除注释应用程序
<