Docker GitLab Runner通过Flyway连接AWS Postgres RDS失败求助
解决方案:移除JDBC URL中的换行符
仔细看你的报错信息:
ERROR: Unable to obtain connection from database (jdbc:postgresql://datacatalog-rds-stage.redacted.us-west-2.rds.amazonaws.com:5432/datacatalog
) for user 'dos': FATAL: database "datacatalog
" does not exist
关键问题在于数据库名datacatalog后面跟着一个换行符,导致Postgres尝试连接的数据库实际是datacatalog\n(带换行符),而你的RDS实例里并没有这个数据库。
下一步操作:
- 检查GitLab CI/CD配置中Flyway使用的JDBC URL定义位置(比如CI变量、脚本文件等),确保URL末尾的
datacatalog后面没有意外的换行或空格。 - 在CI任务中添加调试步骤打印URL,比如:
确认输出的URL是完整的一行,echo "FLYWAY_URL: $FLYWAY_URL"datacatalog后面没有尾随换行。 - 修改URL移除换行符后重新运行Flyway任务。
既然本地Docker容器用相同凭证和URL能正常连接,说明凭证、安全组、数据库本身都没问题,问题就出在GitLab Runner环境中URL的格式错误上。
内容的提问来源于stack exchange,提问作者user6866797
相关产品推荐
相关产品推荐

