Back to directory
sbt avatar

flyway-sbt

An sbt plugin for Flyway database migration. Read more below about its uses, features, and usage.

Clone repository

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

132

Stars

41

Forks

10

Watchers

Apache-2.0

License

CI

sbt plugin for Flyway

Welcome to the home for the sbt plugin for flyway. 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.7.4"

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

Releases

Aug 11, 2025

11.11.0

Download .zip

about flyway-sbt flyway-sbt, originally developed by Boxfuse GmbH and @davidmweber, is an sbt plugin for Flyway database migration. The project was transferred from the flyway org to sbt org in 2024,...

Nov 16, 2024

10.21.0

Download .zip

about flyway-sbt flyway-sbt, originally developed by Boxfuse GmbH and @davidmweber, is an sbt plugin for Flyway database migration. The project was transferred from the flyway org to sbt org in 2024,...

Nov 8, 2024

9.22.0

Download .zip

about flyway-sbt flyway-sbt, originally developed by Boxfuse GmbH and @davidmweber, is an sbt plugin for Flyway database migration. The project was transferred from the flyway org to sbt org in 2024,...

Nov 8, 2024

7.4.0

Download .zip

updates

Flyway 7.4.0 Fix: Only trigger the compile task if there is a Flyway location on the cl… by @nerdydrew in #33 Fix: Fixes flywayInfo displays nothing by @dnskimo in #44 Fix: Fixes flyway callb...