From 721341604c912c99ddd9bef6703648415706fcee Mon Sep 17 00:00:00 2001
From: Philip Sargent <philip.sargent@klebos.com>
Date: Wed, 22 Jul 2020 23:43:07 +0100
Subject: [PATCH] Speed up migrations and init

---
 databaseReset.py | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/databaseReset.py b/databaseReset.py
index a89f910..7134242 100644
--- a/databaseReset.py
+++ b/databaseReset.py
@@ -85,19 +85,21 @@ def reinit_db():
         else:
             print(" - No database file found: " + currentdbname + " ..continuing, will create it.\n")
     else:
-        cursor = django.db.connection.cursor()
-        cursor.execute("DROP DATABASE %s" % currentdbname)
-        cursor.execute("CREATE DATABASE %s" % currentdbname)
-        cursor.execute("ALTER DATABASE %s CHARACTER SET=utf8" % currentdbname)
-        cursor.execute("USE %s" % currentdbname)
+        with transaction.atomic():
+            cursor = django.db.connection.cursor()
+            cursor.execute("DROP DATABASE %s" % currentdbname)
+            cursor.execute("CREATE DATABASE %s" % currentdbname)
+            cursor.execute("ALTER DATABASE %s CHARACTER SET=utf8" % currentdbname)
+            cursor.execute("USE %s" % currentdbname)
 
     print(" - Migrating: " + django.db.connections.databases['default']['NAME'])
 
-    management.call_command('makemigrations','core', interactive=False)
-    management.call_command('makemigrations','flatpages', interactive=False)
-    management.call_command('migrate', interactive=False)
-    management.call_command('migrate','core', interactive=False)
-    management.call_command('migrate','flatpages', interactive=False)
+    with transaction.atomic():
+        management.call_command('makemigrations','core', interactive=False)
+        management.call_command('makemigrations','flatpages', interactive=False)
+        management.call_command('migrate', interactive=False)
+        management.call_command('migrate','core', interactive=False)
+        management.call_command('migrate','flatpages', interactive=False)
     
     print(" - done migration on: " + settings.DATABASES['default']['NAME'])
     print("users in db already: ",len(User.objects.all()))