summaryrefslogtreecommitdiff
path: root/src/mailman/database/postgresql.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/database/postgresql.py')
-rw-r--r--src/mailman/database/postgresql.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mailman/database/postgresql.py b/src/mailman/database/postgresql.py
index 9877f110d..e56ddaf38 100644
--- a/src/mailman/database/postgresql.py
+++ b/src/mailman/database/postgresql.py
@@ -24,6 +24,7 @@ __all__ = [
from mailman.database.base import SABaseDatabase
from mailman.database.model import Model
+from sqlalchemy import Integer
@@ -42,8 +43,11 @@ class PostgreSQLDatabase(SABaseDatabase):
# http://stackoverflow.com/questions/544791/
# django-postgresql-how-to-reset-primary-key
for table in tables:
- store.execute("""\
- SELECT setval('"{0}_id_seq"', coalesce(max("id"), 1),
- max("id") IS NOT null)
- FROM "{0}";
- """.format(table))
+ for column in table.primary_key:
+ if column.autoincrement and isinstance(column.type, Integer) \
+ and not column.foreign_keys:
+ store.execute("""\
+ SELECT setval('"{0}_{1}_seq"', coalesce(max("{1}"), 1),
+ max("{1}") IS NOT null)
+ FROM "{0}";
+ """.format(table, column.name))