1+ import Async
12import Service
23
34/// Adds Fluent PostgreSQL's services to your project.
@@ -17,29 +18,14 @@ public final class FluentPostgreSQLProvider: Provider {
1718
1819 /// See `Provider.register(_:)`
1920 public func register( _ services: inout Services ) throws {
20- try services. register ( PostgreSQLVersionCheckProvider ( ) )
2121 try services. register ( FluentProvider ( ) )
2222 try services. register ( PostgreSQLProvider ( ) )
2323 }
2424
2525 /// See `Provider.boot(_:)`
26- public func boot( _ worker: Container ) throws { }
27- }
28-
29- /// check server version and override _globalEnableIdentityColumns
30- /// dirty workaround for missing pre migration hook
31- public final class PostgreSQLVersionCheckProvider : Provider {
32- /// See `Provider.repositoryName`
33- public static let repositoryName = " fluent-postgresql "
34-
35- public init ( ) { }
36- /// See `Provider.register(_:)`
37- public func register( _ services: inout Services ) throws { }
38-
39- /// See `Provider.boot(_:)`
40- public func boot( _ worker: Container ) throws {
41- try worker. withConnection ( to: . psql) { conn in
42- conn. simpleQuery ( " SELECT current_setting('server_version') as version " ) . map ( to: Void . self) { rows in
26+ public func willBoot( _ worker: Container ) throws -> Future < Void > {
27+ return worker. withConnection ( to: . psql) { conn in
28+ return conn. simpleQuery ( " SELECT current_setting('server_version') as version " ) . map ( to: Void . self) { rows in
4329 _serverVersion = try rows [ 0 ] . firstValue ( forColumn: " version " ) !. decode ( String . self)
4430 if let versionString = _serverVersion {
4531 let pointIndex = versionString. index ( of: " . " ) ?? versionString. endIndex
@@ -49,12 +35,16 @@ public final class PostgreSQLVersionCheckProvider: Provider {
4935 }
5036 }
5137 }
52- } . wait ( )
38+ }
5339 }
5440
55- // get current server version
56- public static func getServerVersion( ) -> String {
57- return _serverVersion ?? " N/A "
41+ /// See `Provider.boot(_:)`
42+ public func didBoot( _ worker: Container ) throws -> Future < Void > {
43+ return worker. withConnection ( to: . psql) { conn in
44+ return conn. simpleQuery ( " select * from pg_class " ) . map ( to: Void . self) { rows in
45+ print ( rows)
46+ }
47+ }
5848 }
5949}
6050
0 commit comments