我试图扭转工程师现有的Oracle架构到一些声明SQLAlchemy的车型。 我的问题是,当我使用MetaData.reflect
,它没有找到我的模式中的表,只是一个全局临时表。 不过,我还是就可以查询其他表。
我使用SQLAlchemy的0.7.8,CentOS的6.2 x86_64的,蟒蛇2.6,cx_Oracle 5.1.2和Oracle 11.2.0.2 Express版本。 下面是我在谈论的快速示例:
>>> import sqlalchemy
>>> engine = sqlalchemy.create_engine('oracle+cx_oracle://user:pass@localhost/xe')
>>> md = sqlalchemy.MetaData(bind=engine)
>>> md.reflect()
>>> md.tables
immutabledict({u'my_gtt': Table(u'my_gtt', MetaData(bind=Engine(oracle+cx_oracle://user:pass@localhost/xe)), Column(u'id', NUMBER(precision=15, scale=0, asdecimal=False), table=<my_gtt>), Column(u'parent_id', NUMBER(precision=15, scale=0, asdecimal=False), table=<my_gtt>), Column(u'query_id', NUMBER(precision=15, scale=0, asdecimal=False), table=<my_gtt>), schema=None)})
>>> len(engine.execute('select * from my_regular_table').fetchall())
4