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)
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
self._run_test(Sequence('foo_seq'))
@testing.fails_on('mysql', "Pending [ticket:2021]")
- @testing.fails_on('sqlite', "Pending [ticket:2021]")
def test_server_default(self):
# note that the MySQL dialect has to not render AUTOINCREMENT on this one
self._run_test(server_default='1',)