为什么Flyway程序化迁移成功但仍处于待定状态?

时间:2018-02-09 09:25:59

标签: rest maven spring-boot hsqldb flyway

我刚刚设立了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:migratevalidate成功但不创建表 重新编辑: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,奇怪...

0 个答案:

没有答案