Как мне записывать операторы SQL в Vapor 3/Fluent?
Похоже, что в Vapor 2 вы могли бы сделать что-то вроде:
let query = <some fluent query object>
logger?.debug(query)
и он напечатал бы полный оператор SQL, но я не вижу документации о том, как это сделать сейчас в Vapor 3.
Как я могу увидеть, какой SQL генерируется моим QueryBuilder
?
1 ответ
Решение
Спасибо Нику в комментариях, который указал мне на правильный набор документов. Это может быть достигнуто с помощью 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
объект вместо