Flyway Core 和 Flyway Maven Plugin 有什么区别?
What is the difference between Flyway Core and Flyway Maven Plugin?
我在 Spring-Boot 项目中使用 Flyway
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
和我 运行 讨论了一些有趣的问题。
在我迁移失败之前(由于架构语法中的拼写错误),整个过程都运行良好。我尝试 运行 fly:repair 但出现此错误
Failed to execute goal org.flywaydb:flyway-maven-plugin:6.4.1:repair (default-cli) on project springboot: org.flywaydb.core.api.FlywayException: Unable to connect to the database. Configure the url, user and password!
现在,奇怪的是我不明白的是,如果我将所有信息添加到 pom.xml
<properties>
<flyway.user>databaseUser</flyway.user>
<flyway.password>databasePassword</flyway.password>
<flyway.url>urlAddress</flyway.url>
</properties>
它建立了。但是如果我将信息添加到我的 application.properties 文件
spring.flyway.user=databaseUser
spring.flyway.password=databasePassword
spring.flyway.url=urlAddress
出现同样的错误信息。
根据Baedlung Database Migrations with Flyway(他们使用的是 Flyway Maven Plugin),你在哪里配置 Flyway 并不重要。
所以我想知道我是否应该切换到 flyway-maven-plugin?我真的很想在 .properties 文件中进行所有配置。
第一件事:Flyway-core 通过 Java 编程代码进行数据库迁移。
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>7.0.0</version>
</dependency>
import org.flywaydb.core.Flyway;
...
Flyway flyway = Flyway.configure().dataSource(url, user, password).load();
flyway.migrate();
// Start the rest of the application (incl. Hibernate)
...
第二件事:Flyway-plugin Maven 目标,运行 by command-line。
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>4.0.3</version>
</plugin>
和
mvn clean flyway:migrate -Dflyway.configFile=myFlywayConfig.properties
您可以根据自己的喜好选择第一件事或第二件事(通过 Java 代码或命令进行数据库迁移)
我在 Spring-Boot 项目中使用 Flyway
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
和我 运行 讨论了一些有趣的问题。
在我迁移失败之前(由于架构语法中的拼写错误),整个过程都运行良好。我尝试 运行 fly:repair 但出现此错误
Failed to execute goal org.flywaydb:flyway-maven-plugin:6.4.1:repair (default-cli) on project springboot: org.flywaydb.core.api.FlywayException: Unable to connect to the database. Configure the url, user and password!
现在,奇怪的是我不明白的是,如果我将所有信息添加到 pom.xml
<properties>
<flyway.user>databaseUser</flyway.user>
<flyway.password>databasePassword</flyway.password>
<flyway.url>urlAddress</flyway.url>
</properties>
它建立了。但是如果我将信息添加到我的 application.properties 文件
spring.flyway.user=databaseUser
spring.flyway.password=databasePassword
spring.flyway.url=urlAddress
出现同样的错误信息。
根据Baedlung Database Migrations with Flyway(他们使用的是 Flyway Maven Plugin),你在哪里配置 Flyway 并不重要。 所以我想知道我是否应该切换到 flyway-maven-plugin?我真的很想在 .properties 文件中进行所有配置。
第一件事:Flyway-core 通过 Java 编程代码进行数据库迁移。
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>7.0.0</version>
</dependency>
import org.flywaydb.core.Flyway;
...
Flyway flyway = Flyway.configure().dataSource(url, user, password).load();
flyway.migrate();
// Start the rest of the application (incl. Hibernate)
...
第二件事:Flyway-plugin Maven 目标,运行 by command-line。
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>4.0.3</version>
</plugin>
和
mvn clean flyway:migrate -Dflyway.configFile=myFlywayConfig.properties
您可以根据自己的喜好选择第一件事或第二件事(通过 Java 代码或命令进行数据库迁移)