Как мне записывать операторы 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 объект вместо

Другие вопросы по тегам