From a7051f80ac26319f6d950bc18860a369949a29c1 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Tue, 24 Nov 2020 23:00:45 +0000 Subject: [PATCH] Make generate_backups function atomic, increase DB timeout --- .../apiserver/api/management/commands/generate_backups.py | 2 ++ apiserver/apiserver/settings.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/apiserver/apiserver/api/management/commands/generate_backups.py b/apiserver/apiserver/api/management/commands/generate_backups.py index d32ec50..942e0d8 100644 --- a/apiserver/apiserver/api/management/commands/generate_backups.py +++ b/apiserver/apiserver/api/management/commands/generate_backups.py @@ -1,6 +1,7 @@ from django.core.management.base import BaseCommand, CommandError from django.utils.timezone import now from django.core.cache import cache +from django.db import transaction from apiserver import secrets, settings from apiserver.api import models @@ -25,6 +26,7 @@ backup_id_string = lambda x: '{}\t{}\t{}'.format( class Command(BaseCommand): help = 'Generate backups.' + @transaction.atomic def generate_backups(self): backup_users = secrets.BACKUP_TOKENS.values() diff --git a/apiserver/apiserver/settings.py b/apiserver/apiserver/settings.py index f5dfbf8..2b1b935 100644 --- a/apiserver/apiserver/settings.py +++ b/apiserver/apiserver/settings.py @@ -116,6 +116,9 @@ DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'data/db.sqlite3'), + 'OPTIONS': { + 'timeout': 20, # increased because generate_backups.py blocks + }, }, 'old_portal': { 'ENGINE': 'django.db.backends.sqlite3',