如何在Vapor 3 / Fluent中记录SQL语句?

Ell*_*ock 4 postgresql vapor

在Vapor 2中,您可以执行以下操作:

let query = <some fluent query object>
logger?.debug(query)
Run Code Online (Sandbox Code Playgroud)

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

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

Ell*_*ock 6

感谢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)
Run Code Online (Sandbox Code Playgroud)

重要的一行是自下而上的第三行。一段时间PostgreSQLDatabaseConfig以来,我一直试图在上启用调试,因此以后对任何人来说,请注意,您正在对DatabasesConfig对象启用了它。