繁体   English   中英

如何在Spring Boot应用程序中运行Flyway命令?

[英]How to run Flyway commands in spring boot application?

我一直在使用flyway处理我的sql脚本迁移,对此感到非常满意。 但是,当我决定继续使用弹簧靴和飞车时,尝试从应用程序运行不同的飞车命令时,我陷入了困境。

当我运行我的脂肪罐子的应用程序时, migrate迁徙路线自动执行的命令。 一切顺利,直到其中一个脚本在linux中失败(由于区分大小写)。 因此,当我想执行repair命令时,我无法执行此操作,因此必须手动删除schema_version表中的条目。

因此,我的问题是,是否有可能通过该应用程序执行其他飞行指令,而无需创建自定义飞行程序处理程序,而仅使用其本机集成。

我找不到command或类似这样的任何spring boot属性。

有什么帮助吗?

Flyway集成没有command属性。 如果愿意,可以实现自己的FlywayMigrationStrategy ,这是一个方法接口:

public interface FlywayMigrationStrategy {

    /**
     * Trigger flyway migration.
     * @param flyway the flyway instance
     */
    void migrate(Flyway flyway);

}

例如,您可以获取传递的命令行参数并进行repair而不是migrate

void migrate(Flyway flyway) {
    String command = env.getProperty("flyway.commamd", "migrate");
    switch (command) {
     case "migrate":
         flyway.migrate();
         break;
     case "repair":
         flyway.repair();
         break;
     default:
         throw new IllegalArgumentException("Invalid command: " + command);
 }
}

此处检查文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM