我正在創(chuàng)建引擎和元數(shù)據(jù)如下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)產(chǎn)量AttributeError: packages,并且dir(Base.classes)不返回具有該名稱的屬性,也不返回具有該orders名稱的屬性。取下only=['orders', 'packages']使其僅反映幾個(gè)隨機(jī)表?,F(xiàn)在,當(dāng)使用原生 SQLAlchemy 附帶的檢查器時(shí),該表實(shí)際上可以工作(文檔鏈接):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這是一個(gè)錯(cuò)誤,還是我在這里忽略了什么?謝謝!安裝包版本: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貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
SQLAlchemy 的自動(dòng)映射擴(kuò)展僅反映已定義主鍵的表。
從文檔中的說(shuō)明:
[...] 要映射的表,它必須指定一個(gè)主鍵。
添加回答
舉報(bào)
0/150
提交
取消