我有以下问题。
我有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。
答案 0 :(得分:1)
您有三种选择:
将DB-Setup转换为正确的Maven模块,让其他模块依赖它。将脚本放在DB-Setup / src / main / resources下。然后,您就可以直接从其他模块使用Flyway Maven插件和API。
将DB-Setup转换为正确的Maven模块并在那里执行Flyway Maven插件。
将DB-Setup保留为一个简单的目录,并使用Flyway Maven插件配置中的文件系统:location来指代存储sql迁移的路径。
我的偏好是#1或#2。
答案 1 :(得分:0)
Flyway正在classpath
查找目录db/migration
。
因此,如果您将脚本放在DB-Setup/db/resources
下,那就应该没问题了。
或者,您可以覆盖Flyway的locations
属性,如下所述: