我无法获得Rails,postgres travis工作。测试开始运行时不断收到数据库连接错误。
Errno::ECONNREFUSED: Connection refused - connect(2)
.travis.yml
language: ruby
rvm:
- "1.9.3"
before_script:
- cp config/database.travis.yml config/database.yml
- psql -c 'create database myapp_test;' -U postgres
- bundle exec rake db:migrate --trace
- bundle exec rake db:test:prepare --trace
script:
- RAILS_ENV=test bundle exec rake spec
gemfile: Gemfile.ci
和database.travis.yml
test:
adapter: postgresql
database: myapp_test
username: postgres
我必须使用单独的数据库配置。
任何线索我做错了什么?几乎完全在http://about.travis-ci.org/docs/user/database-setup/之后的文档,除了我必须将数据库配置复制到正确的位置。
答案 0 :(得分:2)
你为什么要这样做
bundle exec rake db:migrate
bundle exec rake db:test:prepare
db:test:prepare将尝试访问不存在的开发数据库。 rake db:migrate应该由Travis自动运行。
答案 1 :(得分:0)
问题是我需要在travis上启用elasticsearch服务。将记录添加到数据库需要建立索引,拒绝连接是指不存在的elasticsearch服务器。
答案 2 :(得分:0)
基于doc,您应首先打开postgresql服务
services:
- postgresql
使用(可选):
指定数据库类型 env:
- DB=pgsql
注意:postgresql
和postgres
无效。请使用pgsql
!!!
以下是适用于我的完整代码:
.travis.yml
language: ruby
rvm:
- 2.2
env:
- DB=pgsql
services:
- postgresql
script:
- RAILS_ENV=test bundle exec rake db:migrate --trace
- bundle exec rake db:test:prepare
- bundle exec rake
before_script:
- cp config/database.yml.travis config/database.yml
- psql -c 'create database courseselect_test;' -U postgres
配置/ database.yml.travis
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: courseselect_development
test:
<<: *default
database: courseselect_test
production:
<<: *default
database: courseselect_developement
BTW,我的文件database.yml
与config/database.yml.travis