首页 > 解决方案 > Flyway Maven 插件从外部配置文件执行 GOLS

问题描述

伙计们,我在 Spring Boot 项目中使用了 flyway。

当我启动应用程序时,迁移脚本会正确执行。

我的迁移在文件夹中:

flyway.locations = db / 迁移 / postgresql

当我尝试从配置文件执行 fyway 插件 maven 的某些目的时,就会出现问题。

配置文件:

flyway.password=root
flyway.schemas=public
flyway.url=jdbc:postgresql://localhost:5432/film
flyway.locations=db/migration/postgresql 

运行maven命令:

mvn flyway: 修复 -Flyway.config File = myFlywayConfig.properties

返回错误:

无法在项目 demo-hibernate-envers 上执行目标 org.flywaydb:flyway-maven-plugin:6.1.0:repair (default-cli):org.flywaydb.core.api.FlywayException:未知配置属性:flyway.configFile

但是,当我通过 pom.xml 配置 flyway 插件并运行命令时:

mvn flyway:repair

一切都好

flyway插件配置下方:

           <plugin>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-maven-plugin</artifactId>
                <version>6.1.0</version>
                <dependencies>
                    <dependency>
                        <groupId>org.postgresql</groupId>
                        <artifactId>postgresql</artifactId>
                        <version>42.2.5</version>
                        <scope>runtime</scope>
                    </dependency>
                </dependencies>
                <configuration>
                    <user>postgres</user>
                    <password>root</password>
                    <url>jdbc:postgresql://localhost:5432/film</url>
                    <schemas>
                        <schema>public</schema>
                    </schemas>
                </configuration>
            </plugin>

有谁知道如何根据外部配置完成flyway插件的目标?

标签: javaspringpostgresqlspring-bootflyway

解决方案


希望你现在已经弄清楚了。但这个答案可能对其他人有所帮助。

发布的错误是这样的:

org.flywaydb.core.api.FlywayException: Unknown configuration property: flyway.configFile

那是因为缺少一个“s” 。它应该是 flyway.configFile s

注意:它以“s”结尾

根据 flyway 文档,下面是使用它的正确方法(带有 -D 标志)

mvn flyway:repair -Dflyway.configFiles=path/to/myConfigFile.conf 

推荐阅读