在Vapor 2中,您可以执行以下操作:
let query = <some fluent query object>
logger?.debug(query)
它将打印出完整的SQL语句,但是我现在在Vapor 3中没有看到有关如何执行此操作的任何文档。
如何查看QueryBuilder
正在生成什么SQL?
答案 0 :(得分: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)
重要的一行是从底部开始的第三行。一段时间以来,我一直试图在PostgreSQLDatabaseConfig
上启用调试,所以以后对任何人来说,请注意,您正在DatabasesConfig
对象上启用了调试。