首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于控制多个DBs的dbms更改的天桥位置

用于控制多个DBs的dbms更改的天桥位置
EN

Stack Overflow用户
提问于 2017-05-26 16:16:53
回答 3查看 589关注 0票数 2

我的天桥配置-使用mvn包运行天桥。

代码语言:javascript
复制
<plugin>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>4.2.0</version>
            <configuration>
                <locations>
                    <location>db.migration.h2</location>
                </locations>
            </configuration>
        </plugin>

我有一个maven应用程序,它可以很好地工作在一个DB (使用h2数据库引擎),我需要支持天桥到其他DB系统(db2,oracle,postgres )。在另一个项目中,我们正在执行类似的天桥配置文件,用于管理H2和timesten之间的表cration。

(新发现)当我在hte文件中使用天桥位置或配置文件条目时。"mvn清洁包“的工作非常好使用。但是,"mvn验证“给出了一个错误,即它有多个V#_#文件。

我在下面的目录结构中有H2天桥文件

代码语言:javascript
复制
atdd/src/main/java/db/migration/V1_2__comment.java
atdd/src/main/resources/db/migration/V1_1__create_tables.sql

我在迁移中创建了一个子目录"h2“,并将天桥文件移到该子目录中。

我复制了那些文件的db和oracle版本,这些文件位于“db/迁移/db2”和“db/迁移/oracle_ ee”中。

运行maven包只会给我提供:

代码语言:javascript
复制
Caused by: org.flywaydb.core.api.FlywayException: Found more than one migration with version 1.1
Offenders:
->/Users/XXXXX/Documents/fun/atdd/target/classes/db/migration/h2/V1_1__create_tables.sql (SQL)
->/Users/xxxxxx/Documents/fun/atdd/target/classes/db/migration/db2/V1_1__create_tables.sql (SQL)

我尝试过使用属性文件,但这也不起作用。

代码语言:javascript
复制
   <plugin>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>4.2.0</version>

            <configuration>
                   <configFile>./flyway.properties</configFile>
            </configuration>
        </plugin>

atdd/flway.properties有

代码语言:javascript
复制
 flyway.locations=db.migration.h2

似乎是一个问题,什么时候运行回归测试(肯定火插件-我是相当新的maven),有什么特别的肯定火插件吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-06 17:06:52

我能够通过向故障安全插件中添加配置参数来工作。

代码语言:javascript
复制
 <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.19.1</version><!--$NO-MVN-MAN-VER$ -->
            <configuration><argLine>-Dflyway.locations=db.migrtion.h2</argLine></configuration>
            <executions>

使用

代码语言:javascript
复制
mvn clean package  verify site -Dflyway.locations=db.migration.h2 

奇怪的是如果我没有"-Dflyway.locations=db.migration.h2“

票数 1
EN

Stack Overflow用户

发布于 2017-05-27 12:17:35

有一个解决办法,您可以尝试使用Flyway.setLocations ("some/path/test.sql")显式地从您的程序中设置位置。

票数 1
EN

Stack Overflow用户

发布于 2017-06-03 05:35:25

Flyway递归地搜索整个类路径,寻找要应用的迁移。“递归”字意味着检查嵌套在其他文件夹中的文件夹。

所以所有的SQL文件都被找到了。天桥无法知道哪些嵌套文件夹应该被使用或者应该被忽略。

正如另一个答案所示,如果希望忽略所需文件夹,则必须显式地指定它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44206049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档