-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHikariConfig.kt
29 lines (25 loc) · 961 Bytes
/
HikariConfig.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package no.nav.k9.los.db
import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
import com.zaxxer.hikari.metrics.prometheus.PrometheusMetricsTrackerFactory
import io.ktor.server.application.*
import no.nav.k9.los.Configuration
fun createHikariConfig(jdbcUrl: String, username: String? = null, password: String? = null) =
HikariConfig().apply {
this.jdbcUrl = jdbcUrl
maximumPoolSize = 6
minimumIdle = 1
idleTimeout = 10001
connectionTimeout = 10000
maxLifetime = 30001
driverClassName = "org.postgresql.Driver"
username?.let { this.username = it }
password?.let { this.password = it }
metricsTrackerFactory = PrometheusMetricsTrackerFactory()
}
fun Application.hikariConfig(configuration: Configuration): HikariDataSource {
if (configuration.synkronMigrering) {
migrate(configuration)
}
return getDataSource(configuration)
}