DB Migration runner (similar to FlywayDB) which can be used standalone or with Ebean (run migrations on EbeanServer start)
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
test-fs-resources/fsdbmig
.gitignore
LICENSE Initial commit May 18, 2016
README.md No effective change - update README for name change to ebean-migration Sep 9, 2017
pom.xml [maven-release-plugin] prepare for next development iteration Nov 13, 2018

README.md

Ebean Migration

DB Migration runner (similar to FlywayDB) which can be used standalone or with Ebean (to run DB Migrations on EbeanServer start)

Example use

To use firstly create a MigrationConfig and set properties (or load then from Properties).

    MigrationConfig config = new MigrationConfig();
    config.setDbUsername("sa");
    config.setDbPassword("");
    config.setDbDriver("org.h2.Driver");
    config.setDbUrl("jdbc:h2:mem:db1");
    
    // or load from Properties
    Properties properties = ...
    
    config.load(properties);

Then create an run a MigrationRunner. When running the database connection can either be:

  • Passing a Connection explicitly
  • Creating a connection (by specifying JDBC Driver and URL on MigrationConfig)
  • Passing a DataSource (MigrationConfig dbUsername and dbPassword used)

Run with explicit connection

    Connection connection = ...;
    
    MigrationRunner runner = new MigrationRunner(config);
    
    // pass explicit connection
    runner.run(connection);

Run with explicit DataSource

    DataSource dataSource = ...;
    
    MigrationRunner runner = new MigrationRunner(config);
    
    // pass a dataSource
    runner.run(dataSource);

Run creating a Connection (via MigrationConfig)

    DataSource dataSource = ...;
    
    MigrationRunner runner = new MigrationRunner(config);
    
    // pass a dataSource
    runner.run(dataSource);

Notes:

MigrationConfig migrationPath is the root path (classpath or filesystem) where the migration scripts are searched for.

    MigrationConfig config = createMigrationConfig();
    
    // load .sql migration resources from a file system location
    config.setMigrationPath("filesystem:my-directory/dbmigration");

DB Migration runner follows the FlywayDB conventions and supports running "Versioned" migrations and "Repeatable" migrations.

dbmigration
dbmigration/1.1__initial.sql
dbmigration/1.2__add_some_stuff.sql
dbmigration/R__create_views_repeatable.sql

"Repeatable migrations" start with R__ and execute if they have not been or if their content has changed (using a Md5 checksum).

"Version migrations" start with V (or not) and have a version number (1.2 etc) followed by double underscore __ and then a comment.