PostgreSQL13环境下Flyway migration仅Linux服务器执行失败求助
问题排查步骤
- 确认数据库服务端实际版本
你执行psql -V获取的是PostgreSQL客户端版本,而非正在运行的数据库服务端版本。请登录目标数据库执行命令SELECT version();核实服务端版本:
GENERATED ALWAYS AS ... STORED生成列语法是PostgreSQL 12才正式支持的特性,若服务端实际版本≤11,就会触发你遇到的42601语法错误,报错位置恰好对应document列定义的括号处,和你提供的报错信息完全吻合。
- 校验Flyway连接配置
检查Flyway配置文件中的数据库连接地址、端口、实例信息,确认没有误连接到服务器上部署的其他低版本PostgreSQL实例。 - 核对服务器上的迁移脚本内容
打开服务器路径下的迁移文件/root/server/build/resources/main/db/migration/V1_0_1__initial_schema.sql,对比第50行附近的内容和本地原始脚本是否完全一致,排查打包、部署流程中是否出现脚本字符被转义、篡改的问题。 - 检查数据库兼容性参数配置
登录数据库执行SELECT name, setting FROM pg_settings WHERE name LIKE '%compat%';,确认没有开启强制兼容低版本的相关参数,导致高版本语法失效。
内容的提问来源于stack exchange,提问作者Tobi Akinyemi
相关产品推荐
相关产品推荐

