summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/howto/delete-app.txt29
-rw-r--r--docs/howto/index.txt1
2 files changed, 30 insertions, 0 deletions
diff --git a/docs/howto/delete-app.txt b/docs/howto/delete-app.txt
new file mode 100644
index 0000000000..e1dac4f179
--- /dev/null
+++ b/docs/howto/delete-app.txt
@@ -0,0 +1,29 @@
+==================================
+How to delete a Django application
+==================================
+
+Django provides the ability to group sets of features into Python packages
+called :doc:`applications</ref/applications/>`. When requirements change, apps
+may become obsolete or unnecessary. The following steps will help you delete an
+application safely.
+
+#. Remove all references to the app (imports, foreign keys etc.).
+
+#. Remove all models from the corresponding ``models.py`` file.
+
+#. Create relevant migrations by running :djadmin:`makemigrations`. This step
+ generates a migration that deletes tables for the removed models, and any
+ other required migration for updating relationships connected to those
+ models.
+
+#. :ref:`Squash <migration-squashing>` out references to the app in other apps'
+ migrations.
+
+#. Apply migrations locally, runs tests, and verify the correctness of your
+ project.
+
+#. Deploy/release your updated Django project.
+
+#. Remove the app from :setting:`INSTALLED_APPS`.
+
+#. Finally, remove the app's directory.
diff --git a/docs/howto/index.txt b/docs/howto/index.txt
index 05a0203132..0034032ce2 100644
--- a/docs/howto/index.txt
+++ b/docs/howto/index.txt
@@ -31,6 +31,7 @@ you quickly accomplish common tasks.
static-files/deployment
windows
writing-migrations
+ delete-app
.. seealso::