While Dropwizard doesn't come with out-of-the-box integration for Flyway you can easily run Flyway on application startup by adding flyway-core
to your pom.xml
:
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>4.2.0</version> </dependency>
And calling Flyway from your application class:
public class MyApplication extends Application<MyConfiguration> { ... @Override public void run(MyConfiguration configuration, Environment environment) { DataSourceFactory dataSourceFactory = configuration.getDataSourceFactory(); Flyway flyway = new Flyway(); flyway.setDataSource(dataSourceFactory.getUrl(), dataSourceFactory.getUser(), dataSourceFactory.getPassword()); flyway.migrate(); ... } }
Jochen Schalanda has created a great Dropwizard Add-On that adds Flyway commands to the CLI of your Dropwizard application.
The website also comes with comprehensive documentation on usage and configuration.
Want to deploy your Dropwizard apps effortlessly to AWS? Follow our 5 minute tutorial using Boxfuse