Postgresql 11.2: Cannot connect

#1

I’m having trouble getting a build working with Postgresql 11.2. As with previous attempts, the latest build fails when an attempt is made to run a command via psql.

Here’s the configuration:

env:
  global:
    - CC_TEST_REPORTER_ID=eca569d89e2a8d954a3e28ef958ce10e912eef6570bbdabbb28297e11948efa8
language: ruby
before_install:
  - gem update --system
  - gem install bundler
rvm:
  - 2.6.2
services:
  - postgresql
dist:
  - xenial
addons:
  postgresql: "11.2"
  apt:
    packages:
      - postgresql-11
before_script:
  - psql -c "select * from pg_settings where name = 'port';"
  - psql -c 'create database kpdotcom_test;' -U postgres
  - cp config/database.yml.travis config/database.yml
  - bundle exec rake db:schema:load
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
  - chmod +x ./cc-test-reporter
  - ./cc-test-reporter before-build
script:
  - bundle exec rake
after_script:
  - ./cc-test-reporter after-build -t simplecov --exit-code $TRAVIS_TEST_RESULT

I cannot figure out what is preventing psql from finding the Postgresql 11.2 service. Any help would be very much appreciated.

#2

Without looking into too much details yet, it appears to me that the package is found and configured to run on the next-available port, 5433: https://travis-ci.org/keithpitty/kpdotcom/builds/507439479#L231.

I would imagine that your psql by default will connect to port 5432, but nothing is listening on that port.

#3

Hi Hiro,

Thanks for your reply. I tried your suggestion by setting PGPORT=5433 but unfortunately psql is still not connecting: https://travis-ci.org/keithpitty/kpdotcom/builds/508095041.

There must be something else I’m missing.

Keith

#4

Actually, I see that psql is still looking for the PostgreSQL server on port 5432 so setting the PGPORT environment variable has not had any effect. :thinking:

#5

I had this problem too. Here’s the config file that fixed it for me:

This script:

  1. Shuts down all 9.* postgreSQL databases
  2. installs 11.2 (at the time of this writing)
  3. copies the authentication information from the old 9.6 configuration
  4. creates a role called “travis”
language: ruby
rvm: 2.6.2
before_install:
  - sudo apt-get update
  - sudo apt-get --yes remove postgresql\*
  - sudo apt-get install -y postgresql-11 postgresql-client-11
  - sudo cp /etc/postgresql/{9.6,11}/main/pg_hba.conf
  - sudo service postgresql restart 11  
before_script:
  - psql --version
  - psql -c 'CREATE DATABASE {{your database name here}};' -U postgres
  - psql -c 'CREATE ROLE travis SUPERUSER LOGIN CREATEDB;' -U postgres
  - cp config/database.yml.travis config/database.yml
script: bundle exec rake spec
services:
  - postgresql
addons:
  postgresql: "11.2"
#6

Thanks very much for your response, @jondoesntgit. Much appreciated. And apologies for the delay in replying. You’re suggestion worked for me!

#7

Happy to help.