Flyway CLI执行脚本迁移时跳过非SQL文件的问题排查
Flyway OSS跳过非SQL脚本的问题分析
核心原因:版本功能限制
Flyway OSS 版本仅支持SQL格式的迁移脚本,PowerShell、Bash、Python这类非SQL脚本迁移是Flyway Teams(付费商业版)的专属功能。你看到的文档里包含.sh文件的示例,属于Teams版的功能范畴,OSS版无法识别并执行这类非SQL脚本。
命令行语法错误
你的执行命令存在两处明显问题:
- 同时指定了
migrate和info两个命令:Flyway CLI一次只能运行一个命令,需拆分执行(比如先执行flyway migrate完成迁移,再执行flyway info查看状态) - 参数
-defaultSchema=“yes”t存在笔误:末尾多了t字符,且使用了中文双引号,应修正为英文双引号的-defaultSchema="yes"
修正后的migrate命令示例:
flyway migrate -url=jdbc:sqlserver:DB_URL -locations=filesystem:"/Users/blabla/repos/flyway" -user="USERNAME" -password="PASSWORD" -defaultSchema="yes" -table="flyway_schema_history" -cleanDisabled="true" -baselineOnMigrate="true" -baselineVersion="0.0.1"
总结
非SQL脚本被跳过的主要原因是Flyway OSS版本不支持该功能;同时命令本身的语法错误也会导致执行异常。若需执行非SQL格式的迁移脚本,需升级至Flyway Teams版。
内容的提问来源于stack exchange,提问作者OLA
相关产品推荐
相关产品推荐

