2016-05-27 6 views
0

Hasse diese Frage zu stellen - es scheint wie es einfacher sein sollte, aber ich bin an dieser Stelle ratlos ... Ich versuche, eine Initiale zu tun Installation einer Rails App mit Capistrano zu einem Digital Ocean Tröpfchen. Dies ist eine Vanilla Rails App und läuft auf meinem lokalen (Windows) Rechner mit installiertem PG. Allerdings, wenn ich laufe:Rails Capistrano deploy sagt pg gem nicht gefunden, obwohl es in der Edelstein-Datei ist

cap production deploy:initial 

Es beginnt aber nicht ausgeführt werden - in der Mitte begraben ist diese Nachricht:

rake stdout: rake aborted! Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add gem 'pg' to your Gemfile (and ensure its version is at the minimum required

Nun wird das pg Juwel ist in meiner gem Datei. Wenn ich bundle install innerhalb des Freigabeverzeichnisses ausführen, läuft der Bundler einwandfrei, aber wenn ich bundle which ausführen, ist PG nicht in der Liste vorhanden.

bundle list Gems included by the bundle: * actionmailer (4.1.8) * actionpack (4.1.8) * actionview (4.1.8) * activemodel (4.1.8) * activerecord (4.1.8) * activesupport (4.1.8) * arel (5.0.1.20140414130214) * autoprefixer-rails (6.3.6) * babel-source (5.8.35) * babel-transpiler (0.7.0) * bootstrap-sass (3.2.0.2) * builder (3.2.2) * bundler (1.12.4) * coffee-rails (4.0.1) * coffee-script (2.4.1) * coffee-script-source (1.10.0) * connection_pool (2.2.0) * erubis (2.7.0) * execjs (2.6.0) * hike (1.2.3) * i18n (0.7.0) * jbuilder (2.4.1) * jquery-rails (3.1.2) * json (1.8.3) * mail (2.6.4) * mime-types (3.0) * mime-types-data (3.2016.0221) * minitest (5.8.4) * multi_json (1.12.0) * puma (3.4.0) * rack (1.5.5) * rack-test (0.6.3) * rails (4.1.8) * railties (4.1.8) * rake (11.1.2) * rdoc (4.2.2) * react-rails (1.7.1) * sass (3.2.19) * sass-rails (4.0.5) * sdoc (0.4.1) * sprockets (2.12.4) * sprockets-rails (2.3.3) * thor (0.19.1) * thread_safe (0.3.5) * tilt (1.4.1) * turbolinks (2.5.3) * tzinfo (1.2.2) * uglifier (3.0.0)

Ich fühle mich wie dies etwas wirklich einfach, aber das ist mein erstes Mal, ein deploy einer Rails-Anwendung zu tun, und ich habe mehr Stunden damit verbracht, als ich Pflege diesen Versuch zugeben zu. Ich habe auch bundle config build.pg --with-pg-config=/usr/bin/pg_config wie auf einer anderen SO-Antwort empfohlen und ich habe gem install pg unabhängig ausgeführt.

Hier ist meine Gemfile:

source 'https://rubygems.org' 
gem 'rails', '4.1.8' 

gem 'pg' 
gem 'sass-rails', '~> 4.0.3' 
gem 'uglifier', '>= 1.3.0' 
gem 'execjs' 
gem 'coffee-rails', '~> 4.0.0' 
gem 'therubyracer', platforms: :ruby 

gem 'react-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 2.0' 
gem 'sdoc', '~> 0.4.0',   group: :doc 

gem 'bootstrap-sass' 
gem 'autoprefixer-rails' 
gem 'jquery-rails' 

group :development do 
    gem 'capistrano',   require: false 
    gem 'capistrano-rvm',  require: false 
    gem 'capistrano-rails', require: false 
    gem 'capistrano-bundler', require: false 
    gem 'capistrano3-puma', require: false 
end 

gem 'puma' 

gem 'tzinfo-data', platforms: [:mingw, :mswin] 

Wer irgendwelche Ideen?

+0

Was bekommen Sie, wenn Sie 'bundle show pg' ausführen? – kasperite

+0

"Konnte Juwel 'pg' nicht finden. Meintest du pg?" –

+0

Ja, wenn Sie 'bundle show [gem_name]' ausführen, wird das in Ihrer App installierte Verzeichnis "gem" angezeigt, vorausgesetzt, Sie haben "bundle install" erfolgreich ausgeführt. Können Sie pg gem entfernen und das Bundle erneut installieren? – kasperite

Antwort

1

Ich fand es dank @ Kasperite's Hilfe!

In meinem lokalen Gemfile.lock (unter Windows, die auf GitHub geschoben wurde immer und dann für den Einsatz auf dem Ubuntu-Server gezogen) ich diese Linie hatte:

pg (0.18.4-x86-mingw32) 

Sobald ich das geändert:

Und auf GitHub geschoben, tat es tatsächlich die Installation auf dem Tröpfchen und die Bereitstellung wurde fortgesetzt. (Ich habe einen anderen Fehler, aber das ist ein Fortschritt.)

Also, wenn Sie unter Windows mit Rails + PG und die Bereitstellung auf Ubuntu (oder etwas nicht Windows, nehme ich an), Ihre Sperrdatei wird die Windows-PG haben Gem aufgeführt, aber Sie brauchen die "Vanille".