Situation
Consider the following excerpt from SQLAlchemy documentation about the autoincrement attribute:
The default value is the string "auto", which indicates that a single-column (i.e. non-composite) primary key that is of an INTEGER type with no other client-side or server-side default constructs indicated should receive auto increment semantics automatically. Other values include True (force this column to have auto-increment semantics for a composite primary key as well), False (this column should never have auto-increment semantics), and the string "ignore_fk" (special-case for foreign key columns, see below).
...
DDL rendering (i.e. MetaData.create_all(), Table.create()): When used on a Column that has no other default-generating construct associated with it (such as a Sequence or Identity construct), the parameter will imply that database-specific keywords such as PostgreSQL SERIAL, MySQL AUTO_INCREMENT, or IDENTITY on SQL Server should also be rendered. Not every database backend has an “implied” default generator available; for example the Oracle Database backends always needs an explicit construct such as Identity to be included with a Column in order for the DDL rendered to include auto-generating constructs to also be produced in the database.
Problem
Assume a model has a single-column (i.e. non-composite) primary key that is of an INTEGER type. And no other special attributes.
dbconform currently doesn't understand this implies writing DDL to create an auto-generated Identity column.
(shame on SQLAlchemy for not following the Zen: explicit is better than implicit
Situation
Consider the following excerpt from SQLAlchemy documentation about the autoincrement attribute:
Problem
Assume a model has a single-column (i.e. non-composite) primary key that is of an INTEGER type. And no other special attributes.
dbconform currently doesn't understand this implies writing DDL to create an auto-generated Identity column.
(shame on SQLAlchemy for not following the Zen: explicit is better than implicit