我有连接到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
的路径,将/usr/lib/postgresql/10/bin/
添加到每个postgresql-10的PATH,但这没有帮助。
我不需要在一个众所周知的端口上启动数据库服务 - 我的测试和本地开发脚本运行initdb
并启动一个本地数据库,测试通过命名管道连接到该数据库。
如何获得postgres服务器二进制文件的现代版本以及我的测试脚本可用的initdb等相关工具?
我搜索了在Github上提到postgres的.travis.yml文件。
我发现下面的神奇咒语适合我,但我不明白为什么。
我换了
services:
- postgresql
同
addons:
postgresql: "9.6"
以前我曾经使用过插件,但除了服务而不是代替。