如何在Vapor 3/Fluent中记录SQL语句?[英] How do I log SQL statements in Vapor 3/Fluent?

本文是小编为大家收集整理的关于如何在Vapor 3/Fluent中记录SQL语句?的处理方法,想解了如何在Vapor 3/Fluent中记录SQL语句?的问题怎么解决?如何在Vapor 3/Fluent中记录SQL语句?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

看起来在 Vapor 2 中您可以执行以下操作:

let query = <some fluent query object>
logger?.debug(query)

它会打印出完整的 SQL 语句,但我现在在 Vapor 3 中没有看到任何有关如何执行此操作的文档.

如何查看我的 QueryBuilder 正在生成什么 SQL?

推荐答案

感谢评论中的 Nick,他为我指出了正确的文档集.这可以通过使用 enableLogging 方法来完成.所以现在我的 configure.swift 包含以下代码:

let dbConfig: PostgreSQLDatabaseConfig
if let url = Environment.get("DATABASE_URL"), let psqlConfig = PostgreSQLDatabaseConfig(url: url, transport: .unverifiedTLS) {
    dbConfig = psqlConfig
} else {
    dbConfig = ...something for the local db...
}

let postgresql = PostgreSQLDatabase(config: dbConfig)

/// Register the configured SQLite database to the database config.
var databases = DatabasesConfig()
databases.enableLogging(on: .psql)
databases.add(database: postgresql, as: .psql)
services.register(databases)

重要的一行是倒数第三行.有一段时间我试图在 PostgreSQLDatabaseConfig 上启用调试,所以对于将来的任何人,请注意您是在 DatabasesConfig 对象上启用它.

本文地址:https://www.itbaoku.cn/post/1763952.html