为了账号安全,请及时绑定邮箱和手机立即绑定

Flask SQLAlchemy 反射忽略了 Redshift 上的大部分表

Flask SQLAlchemy 反射忽略了 Redshift 上的大部分表

慕哥9229398 2023-05-23 16:45:30
我正在创建引擎和元数据如下engine = create_engine('redshift+psycopg2://USER:PASS.region.com:5439/DBNAME')metadata = MetaData(schema='SCHEMA')metadata.reflect(engine, only=['orders', 'packages'])Base = automap_base(metadata=metadata)Base.prepare()print(Base.classes.packages)产量AttributeError: packages,并且dir(Base.classes)不返回具有该名称的属性,也不返回具有该orders名称的属性。取下only=['orders', 'packages']使其仅反映几个随机表。现在,当使用原生 SQLAlchemy 附带的检查器时,该表实际上可以工作(文档链接):insp = reflection.Inspector.from_engine(engine)print(insp.get_table_names(schema='SCHEMA')) #this prints all tables as expectedpackages_table = Table('packages', metadata)insp.reflecttable(packages_table, None) #this reflects the table as expected这是一个错误,还是我在这里忽略了什么?谢谢!安装包版本:alembic                1.4.2Flask                  1.1.2Flask-Migrate          2.5.3Flask-SQLAlchemy       2.4.4psycopg2               2.8.5SQLAlchemy             1.3.18sqlalchemy-redshift    0.8.1
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

SQLAlchemy 的自动映射扩展仅反映已定义主键的表。

从文档中的说明:

[...] 要映射的表,它必须指定一个主键。


查看完整回答
反对 回复 2023-05-23
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信