Community contributed extensions

Liquibase Module

You never develop code without version control, why do you develop your database without it ?™

Liquibase (http://www.liquibase.org) is a simple, reliable and elegant solution for database refactoring management. It comes with main features :

Liquibase module differs from Migrate module for the main following reason :

Database changes follow application changes just the same way code source does

Getting started

Bundle changelog files within your Play application (see example),

Add liquibase dependency to your Play application

# Additional modules
# ~~~~~
# A module is another play! application. Add a line for each module you want
# to add to your application. Module paths are either absolutes or relative to
# the application root.
module.liquibase=${play.path}/modules/liquibase
 

Configuration

First version configuration options are the following :

liquibase.active=true/false
liquibase.changelog=changelog_path (classpath loaded)
liquibase.properties=properties_path (classpath loaded)
liquibase.contexts=ctxt1[,ctx2]

More features (hosts execution filter, underlying database changelog structure visualization...) to come

Example


Changeset files / properties can be jared and integrated – thus versioned – as 3rd party libs, at module / application level, just the same way jdbc drivers are.


One may also handle changeset at the same level as domainmodel declaration – that’s what we do at GdTeam -, within dedicated module/application, using play module dependency mechanism to create modular app.
Modules archives are still built and maintained against 3rd party repository such as nexus / archiva / artifactory, and then released agains private / public play module repository (see http://code.google.com/p/play-repo/ for more information)