Introduction
In this chapter some examples will show how to use the Migration Plugin goals:
Generic Plugin configuration information
Before starting, please take a look at the following links to know more how to include and configure Maven plugins in the POM project:
pom.xml Plugin configuration
To use Migration Maven plugin in your project you have to configure your pom.xml
file like this:
<plugins> <plugin> <groupId>org.mybatis.maven</groupId> <artifactId>migrations-maven-plugin</artifactId> <version>1.1.5-SNAPSHOT</version> <configuration> <repository> [migration repository path] </repository> </configuration> <dependencies> [ add your jdbc driver depencency ] </dependencies> </plugin> <plugins>
The migration:status goal
This goal prints the current migration status of database. A tipical output could be:
mvn migration:status -Dmigration.path=/path/to/migration/repository ... [INFO] Executing Apache Migration StatusCommand [INFO] ID Applied At Description [INFO] ================================================================================ [INFO] 20100400000001 ...pending... create changelog [INFO] 20100400000002 ...pending... first migration [INFO] 20100400000003 ...pending... second migration [INFO] ...
The migration:check goal
checks the current status of your database migration and fails if one or more script are pending. A typical use of this goal is check the migration status into your maven build life cycle:
<plugin> <groupId>org.mybatis.maven</groupId> <artifactId>migrations-maven-plugin</artifactId> <version>1.1.5-SNAPSHOT</version> <configuration> <repository> [migration repository path] </repository> </configuration> <executions> <execution> <id>migration-chack</id> <phase>test</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <dependencies> <dependency> [your jdbc dependency] </dependency> </dependencies> </plugin>
and then
mvn clean test
this goal fails if migration plugin founds one or more pending script. To skip the
migration check set the properties migration.skip
like this:
mvn -Dmigration.skip=true clean test
Site report for Maven 2 projects
You can configure your pom.xml
to create a simple report of your database status:
<build> ... <plugins> <plugin> <groupId>org.mybatis.maven</groupId> <artifactId>migrations-maven-plugin</artifactId> <version>1.1.5-SNAPSHOT</version> <configuration> <repository> [migration repository path] </repository> </configuration> <executions> <execution> <id>migration-chack</id> <phase>test</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <dependencies> <dependency> [your jdbc dependency] </dependency> </dependencies> </plugin> </plugins> </build> <reporting> <plugins> <plugin> <groupId>org.mybatis.maven</groupId> <artifactId>migrations-maven-plugin</artifactId> <version>1.1.5-SNAPSHOT</version> <configuration> <repository> [migration repository path] </repository> </configuration> </plugin> </plugins> </reporting>
once the plugin is configured, users can invoke:
mvn site
Site report for Maven 3 projects
You can configure your pom.xml
to create a simple report of your database status:
<build> ... <plugins> <plugin> <groupId>org.mybatis.maven</groupId> <artifactId>migrations-maven-plugin</artifactId> <version>1.1.5-SNAPSHOT</version> <configuration> <repository> [migration repository path] </repository> </configuration> <executions> <execution> <id>migration-chack</id> <phase>test</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <dependencies> <dependency> [your jdbc dependency] </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.6</version> <configuration> <reportPlugins> <plugin> <groupId>org.mybatis.maven</groupId> <artifactId>migrations-maven-plugin</artifactId> <version>1.1.5-SNAPSHOT</version> <configuration> <repository> [migration repository path] </repository> </configuration> </plugin> </reportPlugins> </configuration> </plugin> </plugins> ...
once the plugin is configured, users can invoke:
mvn site