我刚刚设立了Flyway,我有疑问:
1)我按照official doc中的规定进行了迁移。迁移数据是成功的,因为已创建表/脚本已执行但是当我创建mvn flyway:status
时,状态为PENDING !!!并且在启动时自动迁移。获得成功状态的唯一方法是制作mvn flyway:migrate。 (我使用文件HSQL数据库,而不是内存)。那么mvn flyway:validate
失败了((2)validation
对于迁移真的有必要吗?)
3)我想以编程方式使用REST服务进行按需迁移(仅用于测试)但我发现这与REST原则相反,因为我应该使用动词方法名称而没有相应的HttpVerb GET / PUT /...
为了避免在应用程序启动时迁移,我添加了以下配置:
@Configuration
public class FlywayConfiguration implements FlywayMigrationStrategy {
@Override
public void migrate(Flyway flyway) {
// Do not migrate on startup
}
}
- > 4)我应该使用@Component
吗?而且我没有看到这个属性,以便比添加这个类更合适。 (在文档中,我看到他们谈到使用@Bean
,是@Component
/ @Configuration
的一般同义词吗?)
谢谢,
编辑:1)命令行上的mvn flyway:migrate
和validate
成功但不创建表
重新编辑:1)已解决:此命令在坏模块中执行,在普通父pom中添加它,它可以正常运行"罚款" :
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>5.0.7</version>
<configuration>
<url>jdbc:hsqldb:file:db/airconnectDB</url>
<user>aLogin</user>
<password>aPassword</password>
<locations>
<location>classpath:db/migration</location>
</locations>
</configuration>
<dependencies>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb.version}</version>
</dependency>
</dependencies>
</plugin>
但奇怪的是,它显示了我的信息,因为我有模块和其中一个模块,stastus是Future,奇怪...