2012-02-04 16 views
23

Mam hosta w Linode i próbuję uruchomić na nim zadanie Rake, ale dostaję błąd mySQL, który mówi, że nie może się połączyć. Wygląda na to, że myśli, że jest na dev. Zrobiłem niektóre googling i zobaczyłem, że mogę zrobić coś takiego:z uruchomieniem zadania prowizji na "produkcji" i określaniu środowiska?

bundle exec rails c 

ładuje środowiska dev i nie mogę uruchomić User.all dając mi błąd odmowa dostępu.

Jeśli biegnę bundle exec rails c RAILS_ENV=production pojawia się błąd:

Rails.env=production database is not configured (ActiveRecord::AdapterNotSpecified) 

Jednakże, jeśli do niego dostęp za pośrednictwem Internetu, wszystko jest OK. Udało mi się wcześniej uruchomić rake db:seed, więc wiem, że jest jakiś sposób obejścia tego.

Uzyskiwanie dostępu do serwera mySQL za pomocą poświadczeń produkcyjnych działa dobrze.

Wszelkie pomysły?

+2

RAILS_ENV jest na prowizji, z konsoli szyn po prostu przekazać środowiska jako pierwsza "produkcja konsoli szyn" - nie musisz też używać pakietu exec podczas wywoływania szyn - używaj go do wszystkiego innego (np. rake) – house9

+1

Podobna do odpowiedzi xnm i house9: Spróbuj 'RAILS_ENV = production rake my_task_name'. Nie zmieni to trwale twojego środowiska, tylko dla zadania, więc nie martw się. – mjnissim

Odpowiedz

49

Spróbuj tego:

rails c production 

lub na początku:

RAILS_ENV=production rails c 

uzna jesteś przejazdem RAILS_ENV=production jako argument kiedy można umieścić go na końcu.

1

Jeśli chcesz uruchomić konsolę w kontekście obecnego pakietu w swojej Gemfile i zapewnić używasz korzystania Gemset:

bundle exec rails c production 
Powiązane problemy