6

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

ただし、ビルドは失敗します。

ここに画像の説明を入力

任意の提案をいただければ幸いです。

4

2 に答える 2

0

ジョナサン・ウィーラーの答えは私を大いに助けてくれました。focalただし、最初の投稿では使用しているのに対し、ディストリビューションにpostgres 11をインストールする必要がありましたxenial

travis の設定ファイルを少し調整する必要があることがわかりました。にpostgres 11をインストールしようとしている人なら誰でも役立つかもしれないと思いました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

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)

于 2021-11-05T11:15:51.270 に答える