Travis CI 未连接到 PostgreSQL 11.2
Travis CI not connecting to PostgreSQL 11.2
我在为 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
然而,构建失败:
如有任何建议,我们将不胜感激。
我也有这个问题。这是为我修复它的配置文件:
这个脚本:
- 关闭所有 9.* postgreSQL 数据库
- 安装 11.2(在撰写本文时)
- 从旧的 9.6 配置复制身份验证信息
- 创建一个名为 "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"
Jonathan Wheeler 的回答对我帮助很大。但是我需要在 focal
发行版上安装 postgres 11 而最初的 post 使用 xenial
.
原来我不得不稍微调整一下 travis 的配置文件。我认为这可能对任何试图在 focal
上安装 postgres 11 的人有所帮助。基本上你需要:
- 导入存储库签名密钥(
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
)
- 将存储库内容添加到 Ubuntu 20.04 系统 (
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql-pgdg.list
)
- 安装 PostgreSQL 11 (
sudo apt -y update && sudo apt -y install postgresql-11 postgresql-client-11
)
- 更改 pg 配置文件:
- 更改端口 (
port = 5433/port = 5432
)
- 简化 postgres 用户访问 (
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
,因为它是由 Jonathan Wheeler 提供的。
如果不确定,您可以检查 postgres 端口,在脚本中添加临时行:echo $(sudo cat /etc/postgresql/11/main/pg_hba.conf)
并在日志中搜索 port = 543
。
postgres 身份验证方法相同:
echo $(sudo cat /etc/postgresql/11/main/postgresql.conf)
我在为 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
然而,构建失败:
如有任何建议,我们将不胜感激。
我也有这个问题。这是为我修复它的配置文件:
这个脚本:
- 关闭所有 9.* postgreSQL 数据库
- 安装 11.2(在撰写本文时)
- 从旧的 9.6 配置复制身份验证信息
- 创建一个名为 "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"
Jonathan Wheeler 的回答对我帮助很大。但是我需要在 focal
发行版上安装 postgres 11 而最初的 post 使用 xenial
.
原来我不得不稍微调整一下 travis 的配置文件。我认为这可能对任何试图在 focal
上安装 postgres 11 的人有所帮助。基本上你需要:
- 导入存储库签名密钥(
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
) - 将存储库内容添加到 Ubuntu 20.04 系统 (
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql-pgdg.list
) - 安装 PostgreSQL 11 (
sudo apt -y update && sudo apt -y install postgresql-11 postgresql-client-11
) - 更改 pg 配置文件:
- 更改端口 (
port = 5433/port = 5432
) - 简化 postgres 用户访问 (
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
,因为它是由 Jonathan Wheeler 提供的。
如果不确定,您可以检查 postgres 端口,在脚本中添加临时行:echo $(sudo cat /etc/postgresql/11/main/pg_hba.conf)
并在日志中搜索 port = 543
。
postgres 身份验证方法相同:
echo $(sudo cat /etc/postgresql/11/main/postgresql.conf)