diff options
-rw-r--r-- | CHANGES | 2 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/postgres.py | 6 |
2 files changed, 8 insertions, 0 deletions
@@ -22,6 +22,8 @@ - mysql: - fix to reflection on older DB's that might return array() type for "show variables like" statements +- postgres: + - better reflection of sequences for alternate-schema Tables [ticket:442] 0.3.4 - general: diff --git a/lib/sqlalchemy/databases/postgres.py b/lib/sqlalchemy/databases/postgres.py index 7eee35320..3fea2e1a5 100644 --- a/lib/sqlalchemy/databases/postgres.py +++ b/lib/sqlalchemy/databases/postgres.py @@ -396,6 +396,12 @@ class PGDialect(ansisql.ANSIDialect): coltype = coltype(*args, **kwargs) colargs= [] if default is not None: + match = re.search(r"""(nextval\(')([^']+)('.*$)""", default) + if match is not None: + # the default is related to a Sequence + sch = table.schema + if '.' not in match.group(2) and sch is not None: + default = match.group(1) + sch + '.' + match.group(2) + match.group(3) colargs.append(PassiveDefault(sql.text(default))) table.append_column(schema.Column(name, coltype, nullable=nullable, *colargs)) |