server/schemaserial.py
changeset 10074 ab956b780d4e
parent 10025 7b72ecc3f4d2
parent 10061 ecbfec2da8a2
child 10095 200bd6a601dc
--- a/server/schemaserial.py	Wed Jul 30 22:26:18 2014 +0200
+++ b/server/schemaserial.py	Mon Dec 01 11:13:10 2014 +0100
@@ -454,7 +454,14 @@
 
 def uniquetogether2rqls(eschema):
     rql_args = []
+    # robustness against duplicated CWUniqueTogetherConstraint (pre 3.18)
+    columnset = set()
     for columns in eschema._unique_together:
+        if columns in columnset:
+            print ('schemaserial: skipping duplicate unique together %r %r' %
+                   (eschema.type, columns))
+            continue
+        columnset.add(columns)
         rql, args = _uniquetogether2rql(eschema, columns)
         args['name'] = y2sql.unique_index_name(eschema, columns)
         rql_args.append((rql, args))