如何在 Vapor 3/Fluent 中记录 SQL 语句?
How do I log SQL statements in Vapor 3/Fluent?
看起来在 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
对象上启用它。
看起来在 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
对象上启用它。