没有为查询获取数据(表类)。all()-sqlalchemy ORM

没有为查询获取数据(表类)。all()-sqlalchemy ORM,orm,sqlalchemy,Orm,Sqlalchemy,我试图简单地执行“select*fromtable”,但它返回的是一个空列表 import os from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from sqlalchemy import Column, Integer, String, text SQLALCHEMY_DA

我试图简单地执行“select*fromtable”,但它返回的是一个空列表

import os

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Column, Integer, String, text

SQLALCHEMY_DATABASE_URL = "postgres+psycopg2://postgres:pwd@localhost:5432/postgres"

engine = create_engine(SQLALCHEMY_DATABASE_URL)
SessionLocal = sessionmaker(engine)

Base = declarative_base()
    
class CPMyTable(Base):
    __tablename__ = 'cp.my_table'

    c_id = Column(Integer)
    c_s_id = Column(Integer, primary_key=True)
    c_s = Column(String)
    
db_session = SessionLocal()
Base.metadata.create_all(engine)

print(db_session.query(CPMyTable).all())
输出:

[]

我正在查询的表的DDL为:

CREATE TABLE cp.my_table (
    c_id int4 NULL,
    c_s_id serial NOT NULL,
    c_s text NULL,
    CONSTRAINT mytable_pk PRIMARY KEY (c_s_id)
);

可能的问题是什么?

您应该使用
\u table\u args\u
来指定模式

class CPMyTable(Base):
    __tablename__ = 'my_table'
    __table_args__ = {'schema': 'cp'}

    c_id = Column(Integer)
    c_s_id = Column(Integer, primary_key=True)
    c_s = Column(String)