Travis-CI and PostgreSQL: psql: error: could not connect to server: No such file or directory

Travis-CI and PostgreSQL: psql: error: could not connect to server: No such file or directory

我正在尝试为我的 Travis-CI 构建获取 PostgreSQL 12 数据库。我已经尝试了几个小时。我查看了 Travis-CI 社区和 Whosebug 上的其他主题。但我没有取得任何进展,而且一直失败。

我正在使用 dist: focal 所以它有 PostgreSQL 12.2。所以我不需要搞乱 addons: postgres: '12'apt: ...
psql --version 命令有效,但 psql -c 'create database ... 命令无效。

如果我删除 psql -c 'create database ... 命令,我的应用程序由于缺少数据库而无法启动,

Caused by: org.postgresql.util.PSQLException at ConnectionFactoryImpl.java:303
Caused by: java.net.ConnectException at Net.java:-2

是的,我已经阅读了 Travis Database Setup 文档。
Travis 构建的 link 是:lukegjpotter/pokemon-team-building-tools/jobs/480144598.
请帮助。

我的travis.yml文件中的相关行如下:

language: java
os: linux
dist: focal
jdk:  oraclejdk13
services:
  - postgresql
before_script:
  - cp config/database.yml.travis config/database.yml
  - psql --version
  - psql -c 'create database travis_ci_test;' -U postgres
env: DATABASE_URL=postgres://postgres:@localhost:5432/travis_ci_test

我的构建输出中的相关行如下:

$ psql --version
psql (PostgreSQL) 12.5 (Ubuntu 12.5-0ubuntu0.20.04.1)

$ psql -c 'create database travis_ci_test;' -U postgres
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
The command "psql -c 'create database travis_ci_test;' -U postgres" failed and exited with 2 during .

此致, 卢克

问题是错误消息中的端口号。

connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

在某些发行版和 postgres 版本上,Postgres 在端口 5432 上运行。
dist: focalservices: postgresql 上,端口是 5433psql 命令使用端口 5432.
要解决这个问题,您需要将 -p 5433 添加到 psql 命令:

$ psql -c 'CREATE DATABASE travis_ci_test;' -U postgres -p 5433

这将给出一个新的错误;

psql: error: FATAL:  Peer authentication failed for user "postgres"
The command "psql -c 'CREATE DATABASE travis_ci_test;' -U postgres -p 5433" failed and exited with 2 during .

但这是另一天的错误。