2013-10-15 12 views
6

Mam problem z uzyskaniem Rails, postgres travis do pracy. Po uruchomieniu testów należy uzyskać błąd połączenia z bazą danych.Konfigurowanie pliku Travis.ci z szynami i Postgresami

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 

i database.travis.yml

test: 
    adapter: postgresql 
    database: myapp_test 
    username: postgres 

muszę używać oddzielnego config bazy danych.

Każda wskazówka co robię źle? Po dokumentacji prawie dokładnie w http://about.travis-ci.org/docs/user/database-setup/ z wyjątkiem muszę skopiować bazę danych konfiguracji w odpowiednim miejscu.

Odpowiedz

0

Problem polegał na tym, że musiałem włączyć usługę elasticsearch na travisie. Dodawanie rekordów do bazy danych wymaga indeksowania, a odrzucone połączenie do nieistniejącego serwera elasticsearch.

+0

Czy istnieje gdziekolwiek wyjaśniłeś, dlaczego potrzebujesz serwera elasticsearch? –

+0

@MarioUher mój zestaw testów miał testy, które oczekiwały, że serwer będzie dostępny pod numerem – mehulkar

+0

. Nigdzie nie wspomniano, a oficjalne dokumenty zawierały również link do elastycznego pakietu wyszukiwania. Byłem bardzo zdezorientowany. Ale wdzięczność za wsparcie Travisa jest naprawdę dobra i pomogła mi z moim problemem. –

1

Dlaczego robisz ten

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

db: test: przygotować się dzieje, aby spróbować uzyskać dostęp do bazy danych rozwojowy, który nie istnieje. I prowizja db: migrate powinny być automatycznie uruchamiane przez Travis.

+0

close, obie powyższe komendy będą uruchamiane dla dev środowisko. – rb512

+0

rake db: test: przygotowanie nie ma dostępu do bazy rozwojowej Nie sądzę. http://stackoverflow.com/a/15170024/986415 – mehulkar

+0

próbuje bez tych dwóch komend chociaż – mehulkar

0

podstawie doc, należy włączyć pierwszy

services: 
    - postgresql 

usługi PostgreSQL oraz określić typ dB (opcjonalnie):

env: 
     - DB=pgsql 

UWAGA: postgresql i postgres nie zadziała. Proszę użyć pgsql !!!

Oto pełny kod, który pracował dla mnie:

.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 

config/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, ja też mam ten plik database.yml z tą samą zawartością co config/database.yml.travis

Powiązane problemy