【问题标题】:Travis CI not connecting to PostgreSQL 11.2Travis CI 未连接到 PostgreSQL 11.2
【发布时间】:2019-03-14 11:50:33
【问题描述】:

我在为 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

但是,构建失败:

任何建议将不胜感激。

【问题讨论】:

    标签: ruby-on-rails travis-ci postgresql-11


    【解决方案1】:

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

    这个脚本:

    1. 关闭所有 9.* postgreSQL 数据库
    2. 安装 11.2(在撰写本文时)
    3. 从旧的 9.6 配置复制身份验证信息
    4. 创建一个名为“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"
    

    【讨论】:

      【解决方案2】:

      Jonathan Wheeler 的回答对我帮助很大。但是我需要在 focal 发行版上安装 postgres 11,而最初的帖子使用 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
      

      我可以保留 Jonathan Wheeler 提供的 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)

      【讨论】:

        猜你喜欢
        • 2017-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-14
        • 1970-01-01
        • 1970-01-01
        • 2021-07-15
        • 1970-01-01
        相关资源
        最近更新 更多