diff --git a/Sources/PostgreSQL/Database/PostgreSQLDatabase.swift b/Sources/PostgreSQL/Database/PostgreSQLDatabase.swift index e906a07c..3da0ba67 100644 --- a/Sources/PostgreSQL/Database/PostgreSQLDatabase.swift +++ b/Sources/PostgreSQL/Database/PostgreSQLDatabase.swift @@ -18,7 +18,11 @@ public final class PostgreSQLDatabase: Database { do { let client = try PostgreSQLConnection.connect(hostname: config.hostname, port: config.port, on: worker) client.logger = logger - return client.authenticate(username: config.username).transform(to: client) + return client.authenticate( + username: config.username, + database: config.database, + password: config.password + ).transform(to: client) } catch { return Future(error: error) } diff --git a/Sources/PostgreSQL/Database/PostgreSQLDatabaseConfig.swift b/Sources/PostgreSQL/Database/PostgreSQLDatabaseConfig.swift index 40fc472b..8f302388 100644 --- a/Sources/PostgreSQL/Database/PostgreSQLDatabaseConfig.swift +++ b/Sources/PostgreSQL/Database/PostgreSQLDatabaseConfig.swift @@ -13,11 +13,20 @@ public struct PostgreSQLDatabaseConfig { /// Username to authenticate. public let username: String - + + /// Optional database name to use during authentication. + /// Defaults to the username. + public let database: String? + + /// Optional password to use for authentication. + public let password: String? + /// Creates a new `PostgreSQLDatabaseConfig`. - public init(hostname: String, port: UInt16, username: String) { + public init(hostname: String, port: UInt16, username: String, database: String? = nil, password: String? = nil) { self.hostname = hostname self.port = port self.username = username + self.database = database + self.password = password } }