Vapor 4 PostgreSQL CRUD без HTTP-запросов

Я пишу бэкэнд с использованием Swift 5 и Vapor 4, база данных — PostgreSQL 12. У меня вопрос: как взаимодействовать с базой данных (CRUD) локально, без запросов POST или GET? Во всех руководствах снова показано, как выполнять CRUD только на основе запроса через HTTPS. Я уже задавал этот вопрос: https://stackoverflow.com/questions/58755538/vapor-3-postgresql-crud-without-requests-http НО ЭТО НЕ ДВОЙНОЙ ВОПРОС, Vapor 4 работает совершенно иначе! Пожалуйста, посмотрите мой текущий рабочий класс для Vapor 3 (на основе этого ответа: Можно ли использовать Vapor 3 Postgres Fluent в автономном скрипте?):

import Vapor import FluentPostgreSQL final class WorkWithPostgres { private let databaseConfig = PostgreSQLDatabaseConfig(hostname: «localhost», port: 5432, username: «RutrackerTech», database: «vaporpostgres», password: «ru628trac4er») let postgres: PostgreSQLDatabase static let shared = WorkWithPostgres() private init() { postgres = PostgreSQLDatabase(config: databaseConfig) } /// Will it create undeleted memory leaks? func shutdownGracefully(worker: MultiThreadedEventLoopGroup, completion: (() -> Void)?) { worker.shutdownGracefully { error in completion?() } } /// Will it create udeleted memory leaks? func connect(completion: ((MultiThreadedEventLoopGroup, PostgreSQLConnection) -> Void)?) { let worker = MultiThreadedEventLoopGroup(numberOfThreads: 1) let eventLoopFuturePostgreSQLConnection = postgres.newConnection(on: worker) let _ = eventLoopFuturePostgreSQLConnection.map { postgreSQLConnection in completion?(worker, postgreSQLConnection) } } func readAll<T: PostgreSQLModel>(postgreSQLModel: T.Type, completion: (([T]) -> Void)?) { connect { worker, connection in let _ = postgreSQLModel.query(on: connection).all().map { databaseData in self.shutdownGracefully(worker: worker) { completion?(databaseData) } } } } func create<T: PostgreSQLModel>(postgreSQLModel: T) { connect { worker, connection in let _ = postgreSQLModel.save(on: connection).whenComplete { self.shutdownGracefully(worker: worker, completion: nil) } } } }

Самая большая проблема: я не могу найти замену PostgreSQLDatabase в FluentPostgresDriver или в Fluent. Или, может быть, должен быть другой подход к решению этой задачи?

Спасибо, что прочитали, буду благодарен за любую помощь или совет!

Источник: ledsshop.ru

Стиль жизни - Здоровье!