From f198542db42e5532bdb1d6699832fa15e2e22e43 Mon Sep 17 00:00:00 2001 From: Aurélien Bompard Date: Wed, 22 Apr 2015 11:38:59 +0200 Subject: PostgreSQL: fix autoincrement reset in tests --- src/mailman/database/postgresql.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/mailman/database/postgresql.py') 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)) -- cgit v1.2.3-70-g09d2