Skip to content

Instantly share code, notes, and snippets.

@rkrzewski
Created October 19, 2018 16:00
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rkrzewski/148963de56e453fc3cb25d4c8bf21a23 to your computer and use it in GitHub Desktop.
Save rkrzewski/148963de56e453fc3cb25d4c8bf21a23 to your computer and use it in GitHub Desktop.
Liquibase migration with Doobie
import cats._
import doobie._
import doobie.implicits._
import liquibase.Liquibase
import liquibase.database.DatabaseFactory
import liquibase.database.jvm.JdbcConnection
import liquibase.resource.ClassLoaderResourceAccessor
object LiquibaseMigration {
def run[F[_]: Monad](xa: Transactor[F]): F[Unit] =
FC.raw { conn =>
val resourceAccessor = new ClassLoaderResourceAccessor(
getClass().getClassLoader())
val database = DatabaseFactory.getInstance()
.findCorrectDatabaseImplementation(new JdbcConnection(conn))
val liquibase = new Liquibase("META-INF/schema-changelog.xml", resourceAccessor, database)
liquibase.update("")
}.transact(xa)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment