簡體   English   中英

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

但是,構建失敗:

在此處輸入圖片說明

任何建議將不勝感激。

我也有這個問題。 這是為我修復它的配置文件:

這個腳本:

  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"

喬納森·惠勒的回答對我幫助很大。 但是我需要在focal發行版上安裝 postgres 11 而最初的帖子使用xenial

結果我不得不稍微調整一下 travis 的配置文件。 我想,這可能有助於任何人試圖安裝在11 Postgres的focal 基本上你需要:

  • 導入存儲庫簽名密鑰( 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 身份驗證方法相同: echo $(sudo cat /etc/postgresql/11/main/postgresql.conf)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM