Flyway SQL 解析器无法解析直接的 snowflake DROP AGENT 语句
作者: ntcong1310创建于 2026年6月19日更新于 2026年7月2日
我们发现 Flyway 中似乎存在一个 Snowflake 解析漏洞。Flyway 正确地检测到目标数据库为 Snowflake,但包含直接 Snowflake `DROP AGENT IF EXISTS ...` 语句的迁移文件在第 1 行第 1 列时在解析时失败。同样的逻辑操作在 `EXECUTE IMMEDIATE` 中包装时成功,这表明 SQL 在 Snowflake 中是有效的,失败原因在于 Flyway 的直接 SQL 解析路径,而不是执行。Snowflake 文档将 `DROP AGENT IF EXISTS` 定义为有效语法,而 `EXECUTE IMMEDIATE` 会动态执行 SQL 字符串。[1]
内容来源: flyway/flyway