我有连接到Postgres服务器版本10.5时在本地工作的测试,但是测试fail on Travis显然是由于使用了IF NOT EXISTS
syntax,而显然是added in Postgres 9.1。
我的.travis.yml
是:
language: node_js
node_js:
- "8"
- "9"
- "10"
- "stable"
# Use faster Docker architecture on Travis.
sudo: false
services:
- postgresql
script: ./scripts/validate.sh
after_success: npm run coveralls
我尝试了“ Using a different postgresql version”的几种变体:
默认情况下,Travis CI构建环境在Trusty映像上使用版本9.2,但也可以使用官方PostgreSQL APT存储库中的其他版本。要使用默认版本以外的版本,请在
.travis.yml
中仅指定major.minor版本:
但是随后which postgres
上的构建开始失败,因此看来postgres
上不再有PATH
。
我尝试手动附加到before_script
中的路径,以将postgresql-10的/usr/lib/postgresql/10/bin/
添加到PATH,但这无济于事。
我不需要在众所周知的端口上启动数据库服务-我的测试和本地开发脚本运行initdb
并启动测试通过命名管道连接的本地数据库。< / p>
如何获取测试脚本可用的现代版本的Postgres服务器二进制文件和相关工具(如initdb)?
答案 0 :(得分:1)
我在Github上搜索了提及postgres的.travis.yml文件。
我发现下面的魔咒对我有用,但是我不知道为什么。
我替换了
services:
- postgresql
使用
addons:
postgresql: "9.6"
以前我曾经使用过插件,但是除了服务之外,我还使用了插件。