diff --git a/apps/installation/__init__.py b/apps/installation/__init__.py index a2d1e50c95..3526291435 100644 --- a/apps/installation/__init__.py +++ b/apps/installation/__init__.py @@ -4,9 +4,10 @@ from south.signals import post_migrate from project_tools.api import register_tool -from django.dispatch import receiver +from django.db import transaction from django.db.models.signals import post_save from django.db.utils import DatabaseError +from django.dispatch import receiver from .links import installation_details from .models import Installation @@ -20,12 +21,13 @@ def trigger_first_time(sender, **kwargs): details.save() +@transaction.commit_on_success def check_first_run(): try: details = Installation.objects.get() except DatabaseError: # Avoid database errors when the app tables haven't been created yet - pass + transaction.rollback() else: if details.is_first_run: details.submit()