![](/img/trans.png)
[英]Spring-boot: Run flyway migration without starting application
[英]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.