【发布时间】:2018-11-27 02:27:41
【问题描述】:
我想知道是否可以使用服务器函数 jsonb 或 row_to_json 来包装关系,而不是使用 python 将结果转换为 json。
当我检索文档时,我希望将 Image 对象作为 json。
class Documentation(Base):
__tablename__ = 'documentation'
id = Column(UUID, server_default=text("uuid_generate_v4()"), primary_key=True)
url = Column(String, nullable=False)
description = Column(String)
name = Column(String)
image_id = Column(UUID,ForeignKey(Image.id))
image = relationship(Image,backref="image_data",lazy="subquery")
class Image(Base):
__tablename__ = 'image'
id = Column(UUID, server_default=text("uuid_generate_v4()"), primary_key=True)
name = Column(VARCHAR(128), nullable=False)
info = Column(JSONB)
image = Column(BYTEA)
我要使用 sqlalchemy 翻译的 sql 请求示例:
select doc.*,
row_to_json(image.*) as image
from documentation doc
left join image on doc.image_id = image.id;
SQLAlchemy(当前请求)
q = Session.query(Documentation).all()
是否可以使用 sqlalchemy 服务器端(在 postgresql 上)来做到这一点? (针对性能问题)
谢谢
【问题讨论】:
-
还没试。我会
标签: python json postgresql sqlalchemy relationship