Travis CI игнорирует спецификацию версии Postgres - PullRequest
0 голосов
/ 04 февраля 2019

Я несколько часов бился об этом, но просто не мог найти ответ.Это абсурд.

Мой .travis.yml:

language: elixir
elixir: "1.6.4"
otp_release: "20.1"
addons:
  - postgresql: "9.6"
services:
  - postgresql
env:
  - MIX_ENV=test
before_script:
  - psql --version
  - psql -c 'SELECT version();' -U postgres
  - psql -c 'create database travis_ci_test;' -U postgres
  - cp config/travis_test.exs config/test.secret.exs
  - mix do ecto.migrate

При создании БД я всегда получаю следующую ошибку:

** (Postgrex.Error) ERROR 42704 (undefined_object): type "jsonb" does not exist

По-видимому, две команды показывают, что версия Postgres всегда 9.2, по умолчанию для trusty изображений.

Был похожий вопрос: .travis.yml версия настройки для postgresql игнорируется , но в этом случае OP, по-видимому, дважды включил в файл .travis.yml клавишу addons.

Я понятия не имею, что произошло в моем случае.

1 Ответ

0 голосов
/ 04 февраля 2019

В конце концов, установка dist в явном виде для xenial решила его для меня.

language: elixir
elixir: "1.6.4"
otp_release: "20.1"
dist: xenial
addons:
  - postgresql: "9.6"
services:
  - postgresql
env:
  - MIX_ENV=test
before_script:
  - psql --version
  - psql -c 'SELECT version();' -U postgres
  - psql -c 'create database travis_ci_test;' -U postgres
  - cp config/travis_test.exs config/test.secret.exs
  - mix do ecto.migrate

Однако я до сих пор не представляю, почему он не работает на trusty, так как Build system information выводит специальнозаявил, что версия 9.6.6 также предустановлена ​​в системе.

...