特拉维斯CI忽略的Postgres版本规范

问题描述 投票:0回答:1

我一直在敲打我的脑袋一下这几个小时,但可能只是没有找到答案。这是荒谬的。

.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 version setting for postgresql ignored,但在这种情况下,显然OP中包含addons文件.travis.yml键两次。

我不知道在我的情况下发生了什么。

postgresql elixir yaml travis-ci
1个回答
2
投票

最后,明确设定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还预装在系统上。

© www.soinside.com 2019 - 2024. All rights reserved.