忽略postgresql的.travis.yml版本设置

时间:2015-09-30 17:12:16

标签: travis-ci

my .travis.yml中有以下内容:

addons:
  postgresql: "9.3"
before_script:
  - psql --version
  - psql -c 'SELECT version();' -U postgres

我得到以下输出:

$ psql --version
$ psql (PostgreSQL) 9.4.0
$ psql -c 'SELECT version();' -U postgres

PostgreSQL 9.1.14 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit

显然这里有问题,但我不知道如何告诉Travis实际使用我指定的postgres版本。我跟着the instructions in Travis Docs。这似乎是一个错误。

这是一个问题,因为我使用了新的json列类型,因此收到以下错误:

PG::UndefinedObject: ERROR:  type "json" does not exist

1 个答案:

答案 0 :(得分:6)

我看一下你遇到的内容本质上是一个 bug ,我们的YAML解析如何处理重复的密钥。解决我们处理这个问题的方法是我们正在努力的事情。

addons:个文件中有两个.travis.yml个密钥

  1. https://github.com/orientation/orientation/blob/f9850e86a97eff77298f54ce68ca0a07c173e81a/.travis.yml#L6-L7
  2. https://github.com/orientation/orientation/blob/f9850e86a97eff77298f54ce68ca0a07c173e81a/.travis.yml#L39-L41
  3. 最后键获胜并且你的postgres内容被静默丢弃时会发生什么。

    如果您按照以下方式组合它们,它将按预期工作。

    addons: postgres: "9.3" code_climate: repo_token: 75408d377a0b3c1ab512bf3fb634617bccf2a1065f8c513e352139427ec8e1fb

    有关此

    的示例,请参阅https://github.com/solarce/orientation/commit/8dd4c1c10b8470ff3529af1d6591d619f211354dhttps://travis-ci.org/solarce/orientation/jobs/83220170

    如果您有任何其他问题,请随时联系support@travis-ci.com