8

我无法让 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/中的文档进行操作,除非我必须将数据库配置复制到正确的位置。

4

3 回答 3

2

你为什么要做

bundle exec rake db:migrate
bundle exec rake db:test:prepare

db:test:prepare 将尝试访问不存在的开发数据库。并且 rake db:migrate 应该由 Travis 自动运行。

于 2013-10-15T03:30:57.953 回答
1

问题是我需要在 travis 上启用 elasticsearch 服务。将记录添加到数据库需要索引,并且拒绝连接到不存在的弹性搜索服务器。

于 2013-12-05T23:27:59.927 回答
0

根据文档,你应该先打开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

顺便说一句,我也有database.yml与相同内容的文件config/database.yml.travis

于 2016-09-10T17:27:50.760 回答