This repository contains slides, source code examples and Jenkins job configuration for the talk "Continuous Database Integration mit Flyway" @ JUG Nuremberg (2018-09-06).
Following tools were used in the demonstration:
- Sonatype Nexus as Maven repository manager
- Jenkins as CI server
- Used Jenkins Plugins:
- Repository Connector Plugin
- File System SCM Plugin
- Flyway 5.0.7
- Maven as Build Tool
For the case, you don't want to use your own database, I prepare a VM with MySQL (Vagrantfile). The VM is started by the command vagrant up. It requires an installed VirtualBox and Vagrant.
The subfolder flyway-5.0.7 contains a pre-configured Flyway commandline tool. If you want to use it against your own MySQL database, you have to change the url, user and password configuration in 'flyway-5.0.7/conf/flyway.properties'.
The subfolder flyway-demo contains a Maven project, that demonstrates how to use the Flyway Java API (see FlwayServletListener) in a web application ( demo-web-application) and Flyway Maven Plugin ( database-scripts ). Notice, that you have to adjust the Flyway Maven plugin configuration in the pom.xml to use it against your own MySQL database.
Furthermore, there is a demo web application ( demo-web-application ) I used to demonstrate a build pipeline in Jenkins. Here, again, you have to adjust the database source configuration ( demo-web-applikation/src/main/resources/META-INF/spring/demo-context.xml ). This demo web application based on the wicket-quickstart archetype.
This subfolder contains the Jenkins job configuration. Copy the folder structure in your Jenkins instance and add the source code or the commandline tool in the job workspace, respectively.
This subfolder contains the slides of the presentation.