Skip to content
/ flyway-sbt Public

An sbt plugin for Flyway database migration

License

Notifications You must be signed in to change notification settings

sbt/flyway-sbt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI

sbt plugin for Flyway

Welcome to the home for the sbt plugin for flyway. The user manual will tell you how to get started. This project is based on the original flyway-sbt that was in the flyway repository through version 4.2.1.

Getting started

Maven Central

Adding Flyway to your build is very easy. First, update to your project/plugin.sbt file to include:

 addSbtPlugin("com.github.sbt" % "flyway-sbt" % "x.y.z")

Please check out Maven Central for versions of flyway-sbt for previous versions of Flyway.

Edit build.sbt to enable the plugin and configure the database access:

enablePlugins(FlywayPlugin)
version := "0.0.1"
name := "flyway-sbt-test1"

libraryDependencies += "org.hsqldb" % "hsqldb" % "2.5.0"

flywayUrl := "jdbc:hsqldb:file:target/flyway_sample;shutdown=true"
flywayUser := "SA"
flywayPassword := ""
flywayLocations := Seq("filesystem:src/main/resources/db/migration")
Test/ flywayUrl := "jdbc:hsqldb:file:target/flyway_sample;shutdown=true"
Test/ flywayUser := "SA"
Test/ flywayLocations := Seq("filesystem:src/main/resources/db/migration")
Test/ flywayPassword := ""

Migrate your database using sbt flywayMigrate or clean it using sbt flywayClean.

To run flyway before any code generation, let compile depend on flywayMigrate

    (Compile / compile) := ((Compile / compile) dependsOn flywayMigrate).value,

Note that the flywayTarget setting has been disabled due to this bug.

Maintenance

This repository is a community project and not officially maintained by the Flyway Team at Redgate. This project is looked after only by the open source community. Community Maintainers are people who have agreed to be contacted with queries for support and maintenance.

Building and testing

Build and testing uses sbt and it's plugin testing framework. The test cases are pretty basic (hint: we need more of those). There is no support for sbt prior to 1.0. Use the legacy plugin instead.

Note that from v5.0.0 onwards, the plugin has to be explicitly enabled using enablePlugins(FlywayPlugin). This prevents Flyway actions triggering unrelated build activity and addresses this issue.

Build and test the plugin using

sbt scripted

Early adopters should just publish a clone or fork of this repository locally:

git clone https://github.com/sbt/flyway-sbt.git
cd flyway-sbt
sbt publishLocal