一個Postgres架構中的表,我下面的反映使用automap
數據庫表中的SQLAlchemy的文檔:http://docs.sqlalchemy.org/en/latest/orm/extensions/automap.html#generating-mappings-from-an-existing-metadata。自動映射反映SQLAlchemy的
當我做不特定的模式,和Postgres使用默認public
模式,這正常工作,我發現我的表的名稱:
>>> m = MetaData()
>>> b = automap_base(bind=engine, metadata=m)
>>> b.prepare(engine, reflect=True)
>>> b.classes.keys()
['ads', 'spatial_ref_sys', 'income']
但是,當我具體明確的架構,我無法再訪問Base.classes
中的表格了。
>>> m = MetaData(schema='geography')
>>> b = automap_base(bind=engine, metadata=m)
>>> b.prepare(engine, reflect=True)
>>> b.classes.keys()
[]
元數據反映,雖然正確:
>>> b.metadata.tables
immutabledict({geography.usa_cbsa_centroids': Table('usa_cbsa_centroids', MetaData(bind=Engine(postgresql://asteroids:***@localhost:5432/asteroids)), Column('GEOID', VARCHAR(length=5), table=<u
sa_cbsa_centroids>, nullable=False), ...})
注意,表和列在運行時才知道。