如何使用 SQLAlchemy 从 graphQL 获取已编译的原始 sql?

Posted

技术标签:

【中文标题】如何使用 SQLAlchemy 从 graphQL 获取已编译的原始 sql?【英文标题】:How to get the compiled raw sql from graphQL with SQLAlchemy? 【发布时间】:2018-05-21 17:02:22 【问题描述】:

如何从graphQLSQLAlchemy获取编译后的原始sql命令?我做了搜索,但没有运气:(

schema.py

class RecordType(SQLAlchemyObjectType):

    class Meta:
        model = Record
        interfaces = (graphene.relay.Node, )

class Query(graphene.ObjectType):

    node = graphene.relay.Node.Field()
    record = graphene.Field(RecordType, id=graphene.Int())

    def resolve_record(self, info, **args):
        id = args.get('id')
        return RecordType.get_query(info).get(id)

schema = graphene.Schema(query=Query, types=[RecordType])

【问题讨论】:

【参考方案1】:

嗯,我刚刚找到了方法,参考来自https://***.com/a/36141722/9041712

query = RecordType.get_query(info)
print(query.statement.compile(compile_kwargs="literal_binds": True))

【讨论】:

以上是关于如何使用 SQLAlchemy 从 graphQL 获取已编译的原始 sql?的主要内容,如果未能解决你的问题,请参考以下文章

使用石墨烯和 SQLalchemy 为 GraphQL 设置权限很热门

将 SqlAlchemy group_by/func 查询转换为 GraphQL

如何在 Relay 中捕获 GraphQL 错误消息?

如何理解 GraphQL 中的空边和节点

Graphene/GraphQL 查找特定列值

如何从 SQLAlchemy ORM 会话中查询预先存在的表?