在为预先存在的数据库编写 SQLAlchemy 模型时,我必须提供多少有关表的信息?考虑这个表,它是 MySQL 数据库的一部分:
CREATE TABLE entities (
id INTEGER NOT NULL AUTO_INCREMENT,
dn VARCHAR(100) NOT NULL UNIQUE,
PRIMARY KEY (id)
) Engine=InnoDB, COLLATE utf8_unicode_ci;
根据我的测试,这足以使用它:
class Entity(Base):
__tablename__ = 'entities'
id = Column('id', Integer, primary_key=True)
dn = Column('dn', String(100))
但当然它缺少 UNIQUE、AUTO_INCREMENT、Engine 和 COLLATE 信息。SQLAlchemy 是否关心这些?
当然我可以使用反射,但出于一致性原因我宁愿不使用。