diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/schema.py | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index 61dd99b85..8b8380471 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -1309,7 +1309,7 @@ class MySQLDDLCompiler(compiler.DDLCompiler): elif column.nullable and is_timestamp and default is None: colspec.append('NULL') - if column is column.table._autoincrement_column: + if column is column.table._autoincrement_column and column.server_default is None: colspec.append('AUTO_INCREMENT') return ' '.join(colspec) diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index a81874500..a530a1a7a 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -325,9 +325,11 @@ class Table(SchemaItem, expression.TableClause): if col.autoincrement and \ issubclass(col.type._type_affinity, types.Integer) and \ not col.foreign_keys and \ - isinstance(col.default, (type(None), Sequence)) and \ - col.server_default is None: - + isinstance(col.default, (type(None), Sequence)): + # don't look at server_default here since different backends may + # or may not have a server_default, e.g. postgresql reflected + # SERIAL cols will have a DefaultClause here but are still + # autoincrement. return col @property |
