The latest release of the Carbon Five Database Migration maven plugin supports a new goal: check. The check goal fails the build if the database isn’t up to date. That is, if there are pending migrations the plugin produces a clear message explaining that the database is out of date and lists the pending migrations. Run mvn test
and see something like this:
20100116010256_audit_tracking.sql
20100121052539_add_daily_reports.sql
Execute db-migration:migrate to apply pending migrations.
[INFO] ————————————————————————
[ERROR] BUILD ERROR
[INFO] ————————————————————————
[INFO] There are 2 pending migrations, migrate your db and try again.
It’s very easy to include the check goal in your build lifecycle if you’re already using the db-migration-maven-plugin.
... <build> <plugins> <plugin> <groupId>com.carbonfive.db-support</groupId> <artifactId>db-migration-maven-plugin</artifactId> <version>0.9.9-m2</version> <executions> <execution> <phase>validate</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <url>jdbc:mysql://${db.host}/${db.name}</url> <username>${db.username}</username> <password>${db.password}</password> </configuration> </plugin> </plugins> </build>
Check out the project home for additional documentation and details. There’s also a simple, complete example application showing off this configuration.
Enjoy!
Christian
Christian is a software developer, technical lead and agile coach. He's passionate about helping teams find creative ways to make work fun and productive. He's a partner at Carbon Five and serves as the Director of Engineering in the San Francisco office. When not slinging code or playing agile games, you can find him trekking in the Sierras and playing with his daughters.