【问题标题】:SQLAlchemy & postgres reflection: erroneously reflecting all schemasSQLAlchemy & postgres 反射:错误地反映所有模式
【发布时间】:2014-06-18 20:18:57
【问题描述】:

我的反射配置如下:

meta = MetaData()
meta.reflect(bind=db.engine, schema='web')

Base = automap_base(metadata=meta)
Base.prepare()

我认为schema 关键字会将反射限制为指定架构,但运行应用程序我发现它无论如何都会反映所有架构中的表,这会导致一些冲突,因为我在不同架构中有同名的表.所以Base.classes 将包含错误的类,因为它使用了错误的架构。

我有什么选择?

【问题讨论】:

    标签: postgresql sqlalchemy


    【解决方案1】:

    您可以使用only 关键字限制MetaData.reflect 中反映的表。

    meta.reflect(bind=db.engine, schema='web', only=tables)
    

    如果您事先不知道特定架构中的表,可以使用Inspector 对象来获取它们。

    insp = reflection.Inspector.from_engine(db.engine)
    tables = insp.get_table_names(schema='web')
    

    【讨论】:

      猜你喜欢
      • 2015-07-06
      • 2018-05-27
      • 2016-11-21
      • 1970-01-01
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多