时间:2010-07-25 15:34:46

标签: django

6 个答案:

答案 0 :(得分:125)

答案 1 :(得分:9)

  1. settings.py不必要的应用
  2. 行中INSTALLED_APPS发表评论
  3. 删除项目中的所有文件夹__pycache__migrate
  4. 删除models.py
  5. 中不必要的模型
  6. 删除views.pyadmin.py结束等所有导入链接。
  7. 删除您不必要应用的urls.py中的所有链接
  8. 在数据库中删除与应用程序关联的不必要的表(我使用帮助程序" Valentina Studio")
  9. 删除应用的文件夹
  10. 在命令行中执行:python manage.py migratepython manage.py syncdb

答案 2 :(得分:2)

答案 3 :(得分:2)

我真的很喜欢this article的步骤 - 它包括迁移支持。

也许它需要适应两个代码更新 - 但是当你必须使用许多部署时(例如:测试阶段,BETA版本和生产 - 在我的情况下),它看起来非常安全。

答案 4 :(得分:1)

在我的上下文中,项目存在多次:我有一个开发系统,一些队友有一个开发系统,有一个供客户使用的登台系统和一个生产系统。这意味着我不想手动执行sql命令。我希望它是自动化的。

目标:删除应用程序和所有数据库表。

步骤1:清空应用程序,但保持安装状态

从应用程序中删除所有文件,文件夹“ migrations”除外

执行以下命令: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保留在文件“ settings.py”中。

第2步:部署更改

更新所有项目。告诉队友更新他们的项目并运行迁移。

步骤3:从settings.py中删除“ my_app_to_remove”

现在,从settings.py中删除“ my_app_to_remove”,然后再次部署。

答案 5 :(得分:0)

Safely Remove a Django app by Jordan Haines

要完全删除 Django 应用(带模型),请按照以下步骤操作。假设我们要删除一个名为 note_app 的应用:

  1. 在您的其他应用中搜索任何 note_app 导入。最简单的方法是在项目范围内搜索“from note_app”。您可能希望从搜索中排除 note_app 目录。
  2. 注释掉 note_app.models 中的所有模型。如果您向 Django 管理员注册了您的 note_app 模型,您可能还需要从 note_app.admin 文件中删除条目。
  3. 在尝试运行 Django 应用程序时查找并解决错误。附注您可能错过了第 1 步中的一些模型导入。
  4. 请注意,根据您定义 ForeignKey、OneToOneManyToMany 字段的方式,您可能在第 1 步中遗漏了 note_app 模型的一些键。重要的是任何字段在继续之前,需要从其他应用程序中的模型中删除指向 note_app 模型的那个点。花一点时间确保没有遗漏这些字段;如果是,则删除那些保留的字段并创建迁移以从您的数据库中删除这些字段。
  5. 运行makemigrations。这应该创建一个 note_app 迁移,删除您刚刚推荐的所有模型。此迁移还应从其他应用中的模型中移除引用 note_app 模型的字段。
  6. 运行迁移。在删除应用程序目录之前,您必须在所有环境(包括生产环境)中运行迁移。从数据库中删除您的应用程序模型的迁移将 - 令人惊讶 - 在您的 note_app 目录中。如果您过早删除应用目录,您将在这些迁移有机会清理您的数据库之前将其删除。
  7. 您可能会注意到已删除模型的内容类型已过时。当询问您是否要删除这些内容类型时,请回答“是”
  8. Git 提示:提交您的迁移,记下提交,然后创建一个单独的提交来删除 note_app 目录。当您准备好在暂存或生产环境中应用您的更改时,请检出您记下的提交,运行迁移,然后检出最新提交以删除应用程序目录。您的第一次提交仍应在 INSTALLED_APPS 中包含 note_app。
  9. 删除包含 note_app 的目录。
  10. 从您的 note_app 设置中删除 INSTALLED_APPS

就是这样……超级简单:)