Skip to content

Commit ffec2a0

Browse files
committed
feat: Add flyway and flyway-pureconfig modules
Closes #6
1 parent eef5417 commit ffec2a0

File tree

2 files changed

+50
-7
lines changed

2 files changed

+50
-7
lines changed
Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
11
package com.avast.sst.flyway
22

3-
final case class FlywayConfig(url: String, username: String, password: String, baselineOnMigrate: Boolean = false)
3+
final case class FlywayConfig(url: String,
4+
username: String,
5+
password: String,
6+
baselineOnMigrate: Boolean = false,
7+
baselineVersion: Option[String] = None,
8+
baselineDescription: Option[String] = None,
9+
batch: Boolean = false,
10+
cleanDisabled: Boolean = false,
11+
cleanOnValidationError: Boolean = false,
12+
connectRetries: Int = 0,
13+
encoding: String = "UTF-8",
14+
group: Boolean = false,
15+
ignoreFutureMigrations: Boolean = true,
16+
ignoreIgnoredMigrations: Boolean = false,
17+
ignoreMissingMigrations: Boolean = false,
18+
ignorePendingMigrations: Boolean = false,
19+
installedBy: Option[String] = None,
20+
mixed: Boolean = false,
21+
locations: List[String] = List.empty,
22+
outOfOrder: Boolean = false,
23+
validateOnMigrate: Boolean = true,
24+
licenseKey: Option[String] = None)

flyway/src/main/scala/com/avast/sst/flyway/FlywayModule.scala

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,34 @@ import org.flywaydb.core.Flyway
66
object FlywayModule {
77

88
def make[F[_]: Sync](config: FlywayConfig): F[Flyway] = {
9-
Flyway
10-
.configure
11-
.dataSource(config.url, config.username, config.password)
12-
.baselineOnMigrate(config.baselineOnMigrate)
13-
.load()
14-
???
9+
Sync[F].delay {
10+
val builder = Flyway
11+
.configure
12+
.dataSource(config.url, config.username, config.password)
13+
.baselineOnMigrate(config.baselineOnMigrate)
14+
.batch(config.batch)
15+
.cleanDisabled(config.cleanDisabled)
16+
.cleanOnValidationError(config.cleanOnValidationError)
17+
.connectRetries(config.connectRetries)
18+
.encoding(config.encoding)
19+
.group(config.group)
20+
.ignoreFutureMigrations(config.ignoreFutureMigrations)
21+
.ignoreIgnoredMigrations(config.ignoreIgnoredMigrations)
22+
.ignoreMissingMigrations(config.ignoreMissingMigrations)
23+
.ignorePendingMigrations(config.ignorePendingMigrations)
24+
.mixed(config.mixed)
25+
.outOfOrder(config.outOfOrder)
26+
.validateOnMigrate(config.validateOnMigrate)
27+
28+
config.baselineVersion.foreach(builder.baselineVersion)
29+
config.baselineDescription.foreach(builder.baselineDescription)
30+
config.installedBy.foreach(builder.installedBy)
31+
if (config.locations.nonEmpty) builder.locations(config.locations: _*)
32+
33+
config.licenseKey.foreach(builder.licenseKey)
34+
35+
builder.load()
36+
}
1537
}
1638

1739
}

0 commit comments

Comments
 (0)