既存のデータベースの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はこれらを気にしますか?
もちろん、Reflectionを使用することもできますが、一貫性の理由から使用したくありません。