diff -r 08dc10ef9ab1 -r ecbfec2da8a2 server/schemaserial.py --- a/server/schemaserial.py Fri Sep 19 13:08:26 2014 +0200 +++ b/server/schemaserial.py Wed Nov 26 17:58:23 2014 +0100 @@ -421,7 +421,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))