Skip to content

Commit 4d1c615

Browse files
committed
Drop in fix to address broken sequencing
1 parent d6a1d91 commit 4d1c615

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

ansible_base/rbac/management/__init__.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import logging
22

33
from django.apps import apps as global_apps
4-
from django.db import DEFAULT_DB_ALIAS, router
4+
from django.db import DEFAULT_DB_ALIAS, router, connection
55

66
from ansible_base.rbac import permission_registry
77
from ansible_base.rbac.remote import get_resource_prefix
@@ -96,3 +96,15 @@ def sync_DAB_permissions(verbosity=2, using=DEFAULT_DB_ALIAS, apps=global_apps):
9696
Permission.objects.using(using).bulk_create(perms)
9797
for perm in perms:
9898
logger.debug("Adding permission '%s'" % perm)
99+
100+
# Reset the sequence to avoid PK collision later
101+
if connection.vendor == 'postgresql':
102+
table = DABContentType._meta.db_table
103+
pk_column = DABContentType._meta.pk.column
104+
with connection.cursor() as cursor:
105+
cursor.execute(f"""
106+
SELECT setval(
107+
pg_get_serial_sequence(%s, %s),
108+
(SELECT MAX({pk_column}) FROM {table})
109+
)
110+
""", [table, pk_column])

0 commit comments

Comments
 (0)