Want to deploy your JVM, Node.js and Go apps effortlessly to AWS? Try our service Boxfuse

Code: Submit your Changes

Congratulations! You now have a fully functional dev environment for Flyway. You can start contributing!

Raise an issue

The first step is to raise an issue in the Issue Tracker. This issue will be the place where you will be able to communicate with Flyway's committers and other users. You can use it to present your ideas and gather feedback.

Fork the repository

The next step is to fork the GitHub repository:


Create the test DBs

Tip: If your feature/bug fix doesn't impact the DB-specific code
and you do not wish to set up all the databases, Flyway can be built using either:
  • mvn install -P-CommercialDBTest (skip Oracle, DB2 & SQL Server)
  • mvn install -P-InstallableDBTest -P-CommercialDBTest (skip all DBs, except in-memory ones)

This will disable all tests against the skipped DBs.

You can then omit installing them and continue to Submit your Changes.

Execute createDBs.cmd to create all local test DBs.

Tip: If you wish to install the DBs on different hosts or ports, or use different usernames and passwords, you can override the default setting in ${user.home}/flyway-mediumtests.properties

Write awesome code

Now is the time to work your magic and implement stuff! Commit your changes to your fork and don't forget to pull and merge the changes from the main repo as they happen.

We use IntelliJ to develop Flyway. The free community edition fits the bill perfectly.

All source code is formatted using the default IntelliJ settings.

Publish your changes

Satisfied with your work? Great! Show the world! Create a pull request and briefly describe your changes:

Step 1:
Pull Request

Step 2:
Pull Request2

We'll have a look at them and provide you feedback until they're ready to be merged. If they are approved, we'll merge them in the mainline and include them in the next release!

Happy coding!