CircleCIでの「WARNING: terminal is not fully functional」


CircleCIがコケたので調べてみた

発生したエラー

#!/bin/bash -eo pipefail
psql -U hoge_user -d hoge_db -h localhost -f database/sql/create_tables.sql
SET
SET
SET
SET
SET
WARNING: terminal is not fully functional

 set_config 
------------

(1 row)

(END)Too long with no output (exceeded 10m0s)

テスト用データベースの構築の途中で入力待ちになりタイムアウトしたようだ。
※migrationを利用できない環境で、データベースとテーブルの構築をsql文で実行している

入力待ちになるのは困るので、解決策を探す。

対応

psqlで利用するPAGERをlessからcatに変えて対応している人を見つけた。

database - Rails: rake db:structure:load times out on CircleCI 2.0 - Stack Overflow

jobs:
    build:
        docker:
          - image: MY_APP_IMAGE
            environment:
              PAGER: cat # prevent psql commands using less

無事解決できました。
PAGERが変わってしまったのはおそらくPostgresqlの環境を9から10に変えて、なにかしら設定が変わってしまったのかと思いますが、深くは追っていません。