Flyway maven插件,具有多个模块的位置

时间:2014-02-10 10:09:48

标签: maven flyway

我有以下问题。

我有maven多模块项目,具有以下结构:

Parent
|
|_____DB-Setup
|        |______V1__init.sql
|        |______V1.1__update.sql
|
|_____Modul1
|        |____src/*
|            
|_____Modul2
         |____src/*

我如何使用maven说Flyway,我的SQL脚本位于Parrent / DB-Setap下?

THX。

<!--FlyWay -->
        <plugin>
            <groupId>com.googlecode.flyway</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <url>jdbc:xxxx</url>
                <user>xxx</user>
                <password>xxx</password>
                <validateOnMigrate>true</validateOnMigrate>                   
            </configuration>               
        </plugin>

THX。

2 个答案:

答案 0 :(得分:1)

您有三种选择:

  1. 将DB-Setup转换为正确的Maven模块,让其他模块依赖它。将脚本放在DB-Setup / src / main / resources下。然后,您就可以直接从其他模块使用Flyway Maven插件和API。

  2. 将DB-Setup转换为正确的Maven模块并在那里执行Flyway Maven插件。

  3. 将DB-Setup保留为一个简单的目录,并使用Flyway Maven插件配置中的文件系统:location来指代存储sql迁移的路径。

  4. 我的偏好是#1或#2。

答案 1 :(得分:0)

Flyway正在classpath查找目录db/migration

因此,如果您将脚本放在DB-Setup/db/resources下,那就应该没问题了。

或者,您可以覆盖Flyway的locations属性,如下所述:

http://flywaydb.org/documentation/migration/sql.html