n1cula
n1cula

Reputation: 97

flyway.properties file not working as pom.xml configuration alternative

I need to set flyway migration and I don't want to put password and username in pom.xml, I created flyway.properties file, but it's not working, I'm getting this error

Failed to execute goal org.flywaydb:flyway-maven-plugin:6.5.1:clean (default-cli) on project entesting: org.flywaydb.core.api.FlywayException: Unable to connect to the database. Configure the url, user and password!

flyway.properties file is in same directory as pom.xml

flyway.user=sa
flyway.password=passwordForThis
flyway.url=jdbc:sqlserver://172.23.176.144;database=DB_Name
flyway.locations=filesystem:src/main/resources/db/migration
flyway.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver

pom.xml flyway plugin config:

        <plugin>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>6.5.1</version>
            <configuration>
                <url>jdbc:sqlserver://172.23.176.144;database=DB_Name</url>
                <user>sa</user>
                <password>passwordForThis</password>
            </configuration>
        </plugin>

To summarize I don't want to add password, username etc. in pom.xml(that works), I want it to be in flyway.propeties.

Upvotes: 2

Views: 3761

Answers (1)

Philip Liddell
Philip Liddell

Reputation: 176

Flyway can be configured in a number of ways beyond directly putting it into the maven pom.xml. See documentation on configuring the maven plugin

The contents of the properties file you showed looks like the contents of a flyway.conf file. Flyway will search for and automatically load the <user-home>/flyway.conf config file if present.

It is also possible to point Flyway at one or more additional config files. This is achieved by supplying the System property flyway.configFiles as follows:

mvn -Dflyway.configFiles=path/to/myAlternativeConfig.conf flyway:migrate

See https://flywaydb.org/documentation/maven/#config-files for more information.

Alternatively for storing the database user and password, Maven settings.xml files can also be used:

<settings>
   <servers>
       <server>
           <!-- By default Flyway will look for the server with the id 'flyway-db' -->
           <!-- This can be customized by configuring the 'serverId' property -->
           <id>flyway-db</id>
           <username>myUser</username>
           <password>mySecretPwd</password>
       </server>
   </servers>
</settings>

Upvotes: 2

Related Questions