【问题标题】:sqlalchemy.exc.ProgrammingError: (ProgrammingError) relation does not existsqlalchemy.exc.ProgrammingError: (ProgrammingError) 关系不存在
【发布时间】:2013-05-06 17:19:37
【问题描述】:

我正在通过创建新项目来尝试 Pyramid。我选择 PostgreSQL 和 sqlalchemy。现在我有一个手动创建的表格“照片”和一个模型:

class Photo(Base):
    """ The SQLAlchemy declarative model class for a Photo object. """
    __tablename__ = 'photo'

    id = Column(Integer, primary_key=True)
    name = Column(Text)
    filename = Column(Text)
    cat_id = Column(Integer)
    viewed = Column(Integer)
    created = Column(DateTime)

    def __init__(self, name):
        self.name = name

然后在一个视图中我试图过滤一些记录:

walls = DBSession.query(Photo).filter(Photo.cat_id == 20).limit(10)

但是这一小段代码不起作用,我出错了:

[sqlalchemy.engine.base.Engine][Dummy-2] {'param_1': 1, 'cat_id_1': 20}
*** sqlalchemy.exc.ProgrammingError: (ProgrammingError) relation "photo" does not exist
LINE 2: FROM photo 
             ^
 'SELECT photo.id AS photo_id, photo.name AS photo_name, photo.filename AS photo_filename, photo.cat_id AS photo_cat_id, photo.viewed AS photo_viewed, photo.created AS photo_created, photo.amazon_folder AS photo_amazon_folder \nFROM photo \nWHERE photo.cat_id = %(cat_id_1)s \n LIMIT %(param_1)s' {'param_1': 1, 'cat_id_1': 20}

数据库连接url正确:

sqlalchemy.url = postgres://me:pwd@localhost:5432/walls

有什么建议吗?

【问题讨论】:

  • 您确定创建的 SQL 表的名称与您提供给 SQLAlchemy 的名称相同吗? PostgreSQL 中的表实际上并不称为“照片”或“照片”? (请参阅this question 上的答案)
  • 我遇到了同样的错误,原因是架构和表所有者不正确,即我的情况是权限问题。

标签: sqlalchemy pyramid


【解决方案1】:

你可以试试,

Photo.query.filter_by(cat_id = 20).limit(10).all()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 2019-07-08
    • 2018-10-25
    • 2020-03-06
    • 2023-03-14
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多