#postgresql #travis-ci
#postgresql #трэвис-ки
Вопрос:
Я пытаюсь получить базу данных PostgreSQL 12 для моей сборки Travis-CI. Я пытаюсь уже несколько часов. Я просмотрел другие темы в сообществе Travis-CI и в StackOverflow. Но я не добился никакого прогресса, и он продолжает терпеть неудачу.
Я использую dist: focal
so, у него 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.
Ссылка на сборку Трэвиса: 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 .
С уважением,
Люк
Ответ №1:
Проблема заключается в номере порта в сообщении об ошибке.
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
В некоторых дистрибутивах и версиях postgres Postgres работает на порту 5432
.
Включен dist: focal
, и services: postgresql
порт есть 5433
. psql
Команда использует порт 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 .
Но это ошибка на другой день.