liquibase4s-core


License

License

Categories

Categories

Liquibase Data Databases
GroupId

GroupId

io.github.liquibase4s
ArtifactId

ArtifactId

liquibase4s-core_2.12
Last Version

Last Version

0.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

liquibase4s-core
liquibase4s-core
Project URL

Project URL

https://github.com/liquibase4s/liquibase4s
Project Organization

Project Organization

io.github.liquibase4s
Source Code Management

Source Code Management

https://github.com/liquibase4s/liquibase4s

Download liquibase4s-core_2.12

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.liquibase4s/liquibase4s-core_2.12/ -->
<dependency>
    <groupId>io.github.liquibase4s</groupId>
    <artifactId>liquibase4s-core_2.12</artifactId>
    <version>0.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.liquibase4s/liquibase4s-core_2.12/
implementation 'io.github.liquibase4s:liquibase4s-core_2.12:0.1.0'
// https://jarcasting.com/artifacts/io.github.liquibase4s/liquibase4s-core_2.12/
implementation ("io.github.liquibase4s:liquibase4s-core_2.12:0.1.0")
'io.github.liquibase4s:liquibase4s-core_2.12:jar:0.1.0'
<dependency org="io.github.liquibase4s" name="liquibase4s-core_2.12" rev="0.1.0">
  <artifact name="liquibase4s-core_2.12" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.liquibase4s', module='liquibase4s-core_2.12', version='0.1.0')
)
libraryDependencies += "io.github.liquibase4s" % "liquibase4s-core_2.12" % "0.1.0"
[io.github.liquibase4s/liquibase4s-core_2.12 "0.1.0"]

Dependencies

compile (3)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.12.11
org.liquibase : liquibase-core jar 4.2.2
org.scala-lang.modules : scala-collection-compat_2.12 jar 2.4.1

test (2)

Group / Artifact Type Version
org.scalameta : munit_2.12 jar 0.7.21
com.h2database : h2 jar 1.4.200

Project Modules

There are no modules declared in this project.

liquibase4s - Liquibase Migrations For Scala

Scala Steward badge Continuous Integration codecov Latest version

liquibase4s is a simple, idiomatic wrapper library to run Liquibase migrations in Scala. We currently support Identity, scala.concurrent.Future and cats.effect.IO.

Binaries

Builds are available for Scala 2.12 and 2.13.

libraryDependencies ++= Seq(
  "io.github.liquibase4s" %% "liquibase4s-core" % "0.1.0",
  
  // if you want to use cats.effect.IO
  "io.github.liquibase4s" %% "liquibase4s-cats-effect" % "0.1.0",
)

Getting Started

To run liquibase migrations you need to create a LiquibaseConfig and construct a Liquibase instance. The default implementation uses Identity which means migrations will run synchronously.

import io.github.liquibase4s.{Liquibase, LiquibaseConfig}

val config: LiquibaseConfig = LiquibaseConfig(
  url = "jdbc:h2:mem:testdb",
  user = "test",
  password = "test",
  driver = "org.h2.Driver",
  changelog = "db/changelog/test.xml",
)

Liquibase(config).migrate() // returns Unit in case of success or throws Exception

Alternatively you can use scala.concurrent.Future to run migrations asynchronously.

import scala.concurrent.Future
import io.github.liquibase4s.FutureMigrationHandler._

import scala.concurrent.ExecutionContext.Implicits.global

Liquibase[Future](config).migrate() // returns Future[Unit]

liquibase4s-cats-effect provides support for cats.effect.IO.

import cats.effect.IO
import io.github.liquibase4s.cats.CatsMigrationHandler._

Liquibase[IO](config).migrate() // returns IO[Unit]

Contributions

Contributions to liquibase4s are very welcome.

Versions

Version
0.1.0