From 3e3cae507cebb364ea23ff5b6b70d5c84db3dd11 Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Wed, 22 Jul 2020 23:36:46 +0100 Subject: [PATCH] More transactions enabled. --- databaseReset.py | 36 +++++++++++++++++++----------------- parsers/imports.py | 7 +++---- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/databaseReset.py b/databaseReset.py index 26cf058..a89f910 100644 --- a/databaseReset.py +++ b/databaseReset.py @@ -41,6 +41,7 @@ from django.db import connection, close_old_connections, connections from django.http import HttpResponse from django.urls import reverse from django.contrib.auth.models import User +from django.db import transaction from troggle.core.models import get_process_memory from troggle.core.models_caves import Cave, Entrance @@ -100,23 +101,24 @@ def reinit_db(): print(" - done migration on: " + settings.DATABASES['default']['NAME']) print("users in db already: ",len(User.objects.all())) - try: - print(" - Setting up admin user on: " + django.db.connections.databases['default']['NAME']) - print(" - user: {} ({:.5}...) <{}> ".format(expouser, expouserpass, expouseremail)) - user = User.objects.create_user(expouser, expouseremail, expouserpass) - user.is_staff = True - user.is_superuser = True - user.save() - except: - print(" ! INTEGRITY ERROR user on: " + settings.DATABASES['default']['NAME']) - print(django.db.connections.databases['default']['NAME']) - print(" ! You probably have not got a clean db when you thought you had.\n") - print(" ! Also you are probably NOT running an in-memory db now.\n") - print("users in db: ",len(User.objects.all())) - print("tables in db: ",len(connection.introspection.table_names())) - memdumpsql(fn='integrityfail.sql') - django.db.connections.databases['default']['NAME'] = ':memory:' - #raise + with transaction.atomic(): + try: + print(" - Setting up admin user on: " + django.db.connections.databases['default']['NAME']) + print(" - user: {} ({:.5}...) <{}> ".format(expouser, expouserpass, expouseremail)) + user = User.objects.create_user(expouser, expouseremail, expouserpass) + user.is_staff = True + user.is_superuser = True + user.save() + except: + print(" ! INTEGRITY ERROR user on: " + settings.DATABASES['default']['NAME']) + print(django.db.connections.databases['default']['NAME']) + print(" ! You probably have not got a clean db when you thought you had.\n") + print(" ! Also you are probably NOT running an in-memory db now.\n") + print("users in db: ",len(User.objects.all())) + print("tables in db: ",len(connection.introspection.table_names())) + memdumpsql(fn='integrityfail.sql') + django.db.connections.databases['default']['NAME'] = ':memory:' + #raise def memdumpsql(fn): djconn = django.db.connection diff --git a/parsers/imports.py b/parsers/imports.py index ddfe69f..0d5420b 100644 --- a/parsers/imports.py +++ b/parsers/imports.py @@ -59,15 +59,14 @@ def import_survex(): def import_loadpos(): # when this import is moved to the top with the rest it all crashes horribly - with transaction.atomic(): - import troggle.parsers.survex - print(" - Survex entrances x/y/z Positions") import troggle.parsers.survex + print(" - Survex entrances x/y/z Positions") + with transaction.atomic(): troggle.parsers.survex.LoadPositions() def import_drawingsfiles(): print("-- Importing Drawings files") - import troggle.parsers.survex + with transaction.atomic(): troggle.parsers.surveys.LoadDrawingFiles() # Fossil.