如何在Travis CI OS X构建中设置Postgres?
我无法开始,我也不知道如何设置这些:
--dbaddress localhost --dbport 5432 --dbname testDb --dbusername postgres
答案 0 :(得分:2)
使用Travis CI OS X实例,环境类似于典型的Homebrew安装。
以下是您可以配置的Travis CI OS X environment。
可用的数据库服务:
postgis版本2.1.3,postgresql版本9.3.5
与Linux不同,OSX目前不提供服务配置。您可以使用安装脚本启动数据库服务,并直接使用Postgresql工具。
示例.travis.yml如下所示:
addons:
postgresql: "9.4"
language:
- objective-c
os:
- osx
sudo:
- false
install:
- export PG_DATA=$(brew --prefix)/var/postgres
- pg_ctl -w start -l postgres.log --pgdata ${PG_DATA}
- createuser -s postgres
- psql -c 'create database testDb;' -U postgres
- cat postgres.log
那它做了什么?
“add ons”正在选择默认的
上的特定postgresql版本“sudo”命令无法在Travis CI中执行
“install”包含我们需要运行的命令以及您要添加的其他命令
pg_ctl命令需要一个数据目录,“PG_DATA”包含本地home-brew安装的路径和存储数据库文件的目录。
pg_ctl将启动现有服务并等待(-w)连接。
unix用户/角色" postgres"必须创建并用于数据库“testDb”的最终创建脚本。
最后,将postgres.log发送到Travis CI日志。
希望这可以让您了解从哪里开始。
答案 1 :(得分:2)
griffio回答的其他信息:
与此同时Travis正在运行PostgreSQL 9.5(即使使用了addon postgresql:" 9.4")并且在启动时得到了以下日志输出:
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.5.4.
首先创建新群集后,它正在工作:
install:
- export PG_DATA=$(brew --prefix)/var/postgres
- rm -rf $PG_DATA
- initdb $PG_DATA -E utf8
- pg_ctl -w start -l postgres.log --pgdata ${PG_DATA}
- createuser -s postgres
- psql -c 'create database testDb;' -U postgres