Rollback transaction on exception, during syncdb (Postgresql @ DjangoZoom)
This commit is contained in:
@@ -3,6 +3,7 @@ from django.shortcuts import get_object_or_404
|
|||||||
from django.utils.translation import ugettext
|
from django.utils.translation import ugettext
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
from django.db import transaction
|
||||||
|
|
||||||
from permissions import PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT, \
|
from permissions import PERMISSION_ROLE_VIEW, PERMISSION_ROLE_EDIT, \
|
||||||
PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE, \
|
PERMISSION_ROLE_CREATE, PERMISSION_ROLE_DELETE, \
|
||||||
@@ -19,6 +20,7 @@ def set_namespace_title(namespace, title):
|
|||||||
namespace_titles.setdefault(namespace, title)
|
namespace_titles.setdefault(namespace, title)
|
||||||
|
|
||||||
|
|
||||||
|
@transaction.commit_manually
|
||||||
def register_permission(permission):
|
def register_permission(permission):
|
||||||
try:
|
try:
|
||||||
permission_obj, created = Permission.objects.get_or_create(
|
permission_obj, created = Permission.objects.get_or_create(
|
||||||
@@ -26,8 +28,12 @@ def register_permission(permission):
|
|||||||
permission_obj.label = unicode(permission['label'])
|
permission_obj.label = unicode(permission['label'])
|
||||||
permission_obj.save()
|
permission_obj.save()
|
||||||
except DatabaseError:
|
except DatabaseError:
|
||||||
|
transaction.rollback()
|
||||||
#Special case for ./manage.py syncdb
|
#Special case for ./manage.py syncdb
|
||||||
pass
|
except IntegrityError:
|
||||||
|
transaction.rollback()
|
||||||
|
else:
|
||||||
|
transaction.commit()
|
||||||
|
|
||||||
|
|
||||||
def check_permissions(requester, permission_list):
|
def check_permissions(requester, permission_list):
|
||||||
|
|||||||
Reference in New Issue
Block a user