Home ¦ Posts ¦ Books ¦ Articles ¦ Talks ¦ Notes

flyway baseline: Introducing flyway migrations into existing database

If you are trying to introduce flyway to an existing database with the schemas and tables already created, you may find flyway baseline command useful.

Let's say you already have the migration scripts written, or perhaps dumped out of your existing DB setup, and they are:

V1__foo.sql
V2__foo_new.sql.
V3__bar.sql

You basically want to say - flyway, ignore all scripts upto V3, but if there are newer migrations, run them. To do so, you run the baseline command, like so:

$ docker run --rm -v 
  "$(pwd)"/MigrationScripts:/flyway/sql \
  boxfuse/flyway \
  -url="jdbc:<url>" \
  -baselineVersion=3 \
  baseline

The key parameter above is baselineVersion=3. Executing the above command will create the schema_version table with a single row, like so:

installed_rank  version description            type      script            checksum installed_by    installed_on            execution_time  success
1              3        << Flyway Baseline >>   BASELINE    << Flyway Baseline >>   NULL     UserName       2018-10-11 23:33:07.4        0           1

If you now, run migrate, you will see it doesn't apply any migrations.

Share on: Diaspora*TwitterFacebookGoogle+Email

© Amit Saha. Built using Pelican. Customised theme based on the one by Giulio Fidente on github.