我的反射配置如下:
meta = MetaData()
meta.reflect(bind=db.engine, schema='web')
Base = automap_base(metadata=meta)
Base.prepare()
我认为schema
关键字会限制对指定模式的反射,但运行应用程序我看到它反映了所有模式中的表,这导致了一些冲突,因为我有相同名称的表不同的模式。因此,Base.classes
将包含错误的类,因为它使用了错误的模式。
我有什么选择?
答案 0 :(得分:0)
您可以使用MetaData.reflect
关键字限制only
中反映的表格。
meta.reflect(bind=db.engine, schema='web', only=tables)
如果您未提前知道特定架构中的表格,可以使用Inspector
对象来获取它们。
insp = reflection.Inspector.from_engine(db.engine)
tables = insp.get_table_names(schema='web')