首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有连接到PostgreSQL 11.2的Travis CI

没有连接到PostgreSQL 11.2的Travis CI
EN

Stack Overflow用户
提问于 2019-03-14 11:50:33
回答 2查看 1.2K关注 0票数 6

我在为PostgreSQL 11.2数据库构建Rails应用程序时遇到了问题。

下面是.travis.yml文件:

代码语言:javascript
复制
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

但是,构建失败:

如有任何建议,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-22 23:48:03

我也有这个问题。下面是为我修复它的配置文件:

这个脚本:

  1. 关闭所有9.* postgreSQL数据库。
  2. 安装11.2 (撰写本文时)
  3. 从旧9.6配置复制身份验证信息
  4. 创建一个名为"travis“的角色
代码语言:javascript
复制
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"
票数 5
EN

Stack Overflow用户

发布于 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 -)
  • 向Ubuntu20.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)
    • 方便邮政用户访问(peer/trust)

  • 更改访问权限sudo chmod 750 /var/lib/postgresql/11/main

下面是脚本:

代码语言:javascript
复制
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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55161807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档