flyway 错误:无法从数据库中获取用户“null”

问题描述

我正在尝试针对 kubernetes 上的 postgres 数据库运行 flyway docker image 7.3.2

当我运行作业时,我的输出是:

Flyway Community Edition 7.3.2 by Redgate
ERROR:
Unable to obtain connection from database (jdbc:postgresql://xxx.eu-west-2.rds.amazonaws.com:5432/xxx flyway.user=postgres flyway.password=****************) for user 'null': The server requested password-based authentication,but no password was provided.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sql State  : 08004
Error Code : 0
Message    : The server requested password-based authentication,but no password was provided.

Caused by: org.postgresql.util.PsqlException: The server requested password-based authentication,but no password was provided.

输出的设置是正确的,应该启用连接。

我通过配置映射传入我的 flyway.conf,它是:

apiVersion: v1
kind: ConfigMap
Metadata:
  name: flyway-configmap
data:
  flyway.conf:
    flyway.url=jdbc:postgresql://xxx.eu-west-2.rds.amazonaws.com:5432/xxx
    flyway.user=postgres
    flyway.password=xxx

任何人都可以协助我做错了什么?

解决方法

如果这确实是您的 ConfigMap,那么它在 | 之后缺少 : 字符,这会使该 yaml 键变成 a newline delimited scalar。该理论也与您的错误消息相符,显示整个事物 被视为 flyway.url

的值

你想要的:

  flyway.conf: |
    flyway.url=jdbc:postgresql://xxx.eu-west-2.rds.amazonaws.com:5432/xxx
    flyway.user=postgres
    flyway.password=xxx