我在为PostgreSQL 11.2数据库构建Rails应用程序时遇到了问题。
下面是.travis.yml文件:
rvm:
- 2.6.1
dist: xenial
services:
- postgresql
addons:
postgresql: "11.2"
apt:
packages:
- postgresql-11
before_script:
- psql --version
- psql -c 'create database kpdotcom_test;' -U postgres
- cp config/database.yml.travis config/database.yml
- bundle exec rake db:schema:load但是,构建失败:

如有任何建议,将不胜感激。
发布于 2019-03-22 23:48:03
我也有这个问题。下面是为我修复它的配置文件:
这个脚本:
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"发布于 2021-11-05 11:15:51
乔纳森·惠勒的回答对我有很大帮助。然而,我需要在focal发行版上安装postgres 11,而最初的post使用xenial。
结果我不得不稍微修改一下travis的配置文件。我认为这可能会帮助任何试图在focal上安装postgres 11的人。基本上你需要:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -)echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql-pgdg.list)添加存储库内容sudo apt -y update && sudo apt -y install postgresql-11 postgresql-client-11)port = 5433/port = 5432)peer/trust)sudo chmod 750 /var/lib/postgresql/11/main下面是脚本:
before_install:
- sudo apt -y remove postgresql\*
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql-pgdg.list
- sudo apt -y update
- sudo apt -y install postgresql-11 postgresql-client-11
- sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/11/main/postgresql.conf
- sudo sed -i 's/local all postgres peer/local all postgres trust/' /etc/postgresql/11/main/pg_hba.conf
- sudo chmod 750 /var/lib/postgresql/11/main
- sudo service postgresql restart 11我可以保留before_script,因为它是乔纳森惠勒给的。
如果不确定,可以检查postgres端口,在脚本中添加一个临时行:echo $(sudo cat /etc/postgresql/11/main/pg_hba.conf),并在日志中搜索port = 543。
同样适用于postgres auth方法:echo $(sudo cat /etc/postgresql/11/main/postgresql.conf)
https://stackoverflow.com/questions/55161807
复制相似问题