需要设置一个配置文件,让Flyway在重新启动时清理数据库



当我使用用于集成测试的概要文件运行春季启动应用程序时,我希望从一个干净的数据库开始。应用程序在自己的JVM中运行,集成测试在另一个JVM中运行。看来添加:

spring.flyway.clean-disabled=false

到集成属性文件应该可以做到这一点,但它不起作用。文档中说spring.flyway.clean-disabled的默认设置是false,这意味着如果我没有在任何属性文件中设置spring.flyway.clean-disabled,那么每次启动应用程序时,我都会得到一个空数据库。但事实并非如此。数据库的内容在应用程序启动之间保持不变。那么,使用干净的数据库启动应用程序需要做些什么呢?我使用的是Spring Boot 2.3.1.RELEASE.

文档说spring.flyway.clean-disabled的默认设置是false,这意味着如果我没有在任何属性文件中设置spring.flyway.clean-disabled,那么每次启动应用程序时,我都会得到一个空数据库。

不,不应该每次启动应用程序时都得到一个空数据库。Flyway是一种数据库迁移工具。如果在每次应用程序启动时,默认情况下会完全擦除数据库,那将是相当尴尬的。

与migrate命令(在应用程序启动时由Spring Boot自动调用(不同,clean是一个主要在开发和测试过程中有用的命令。您必须显式地调用它(例如通过Maven/Gradle(。

cleanDisabled参数只是一种保护措施,可以对其进行配置,以防止在生产环境中执行clean命令。

相关内容

最新更新