[PATCH 3/4] Add support for 'django-dbbackup'

Stephen Finucane stephen at that.guru
Sun Oct 7 08:45:05 AEDT 2018


'parsemail' and 'parsearchive' are slow. When messing with models and
migrations, it can be very useful to backup the database in its current
state and restore it if/when you mess up. Currently, we've documented
how to do this via some commands run in the shell of the container, but
we can do things easier via an application designed for this purpose:
'django-dbshell'.

Signed-off-by: Stephen Finucane <stephen at that.guru>
---
 .gitignore                |  3 +++
 patchwork/settings/dev.py | 13 +++++++++++++
 requirements-dev.txt      |  1 +
 3 files changed, 17 insertions(+)

diff --git a/.gitignore b/.gitignore
index 57376bdd..a33d1029 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,3 +54,6 @@ patchwork/settings/production.py
 
 # docker-compose configuration files
 /.env
+
+# django-dbbackup files
+/.backups
diff --git a/patchwork/settings/dev.py b/patchwork/settings/dev.py
index 4bb5a93c..711177c9 100644
--- a/patchwork/settings/dev.py
+++ b/patchwork/settings/dev.py
@@ -9,6 +9,11 @@ Design based on:
 
 from .base import *  # noqa
 
+try:
+    import dbbackup
+except ImportError:
+    dbbackup = None
+
 #
 # Core settings
 # https://docs.djangoproject.com/en/1.11/ref/settings/#core-settings
@@ -72,6 +77,14 @@ INTERNAL_IPS = [
     '172.18.0.1'
 ]
 
+# django-dbbackup
+
+if dbbackup:
+    INSTALLED_APPS += [
+        'dbbackup',
+    ]
+
+    DBBACKUP_STORAGE_OPTIONS = {'location': '.backups'}
 
 #
 # Patchwork settings
diff --git a/requirements-dev.txt b/requirements-dev.txt
index b0cdd0de..ed98c30e 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -3,4 +3,5 @@ Django==1.11.15; python_version < '3.0'  # pyup: ignore
 djangorestframework==3.8.2
 django-filter==2.0.0; python_version >= '3.4'
 django-filter==1.1.0; python_version < '3.0'  # pyup: ignore
+django-dbbackup==3.2.0
 -r requirements-test.txt
-- 
2.17.1



More information about the Patchwork mailing list