sqlalchemy.exc.ProgrammingError:(ProgrammingError)关系不存在
我正在通过创建新项目来尝试金字塔。我选择PostgreSQL和sqlalchemy。目前,我已经手动创建了一个表“photo”,并为其创建了一个模型:sqlalchemy.exc.ProgrammingError:(ProgrammingError)关系不存在,sqlalchemy,pyramid,Sqlalchemy,Pyramid,我正在通过创建新项目来尝试金字塔。我选择PostgreSQL和sqlalchemy。目前,我已经手动创建了一个表“photo”,并为其创建了一个模型: class Photo(Base): """ The SQLAlchemy declarative model class for a Photo object. """ __tablename__ = 'photo' id = Column(Integer, primary_key=True) name = C
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
有什么建议吗?你可以试试
Photo.query.filter_by(cat_id = 20).limit(10).all()
您确定创建的SQL表与提供给SQLAlchemy的名称相同吗?PostgreSQL中的表实际上不是“照片”或“照片”吗?(请参阅上的答案)我遇到了相同的错误,其原因是架构和表所有者不正确,即我的案例存在权限问题。