diff options
Diffstat (limited to 'lib/sqlalchemy/ansisql.py')
-rw-r--r-- | lib/sqlalchemy/ansisql.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/sqlalchemy/ansisql.py b/lib/sqlalchemy/ansisql.py index 225188eb3..46131def2 100644 --- a/lib/sqlalchemy/ansisql.py +++ b/lib/sqlalchemy/ansisql.py @@ -701,8 +701,12 @@ class ANSISchemaGenerator(ANSISchemaBase): first_pk = True for constraint in column.constraints: constraint.accept_schema_visitor(self, traverse=False) - - for constraint in table.constraints: + + # On some DB order is significant: visit PK first, then the + # other constraints (engine.ReflectionTest.testbasic failed on FB2) + if len(table.primary_key): + table.primary_key.accept_schema_visitor(self, traverse=False) + for constraint in [c for c in table.constraints if c is not table.primary_key]: constraint.accept_schema_visitor(self, traverse=False) self.append("\n)%s\n\n" % self.post_create_table(table)) |