更新 - 解決済み: ローカル サーバーと heroku の両方が機能しません。2 つの主要なコンポーネントがこの問題を解決しました。
皆様のご支援とご支援をよろしくお願いいたします。喜んで助けてくれる人がいることを知ることは、この学習プロセスにおいて非常に貴重です。したがって、将来のコーダーが頭を悩ませるために、このエラー/解決策を文書化する私の努力.
:( 私のアプリはローカルで動作していたので、指示に従って Heroku にプッシュしました。
Heroku の非常に説明的で安心できるエラー メッセージが表示されました。「申し訳ありませんが、問題が発生しました。」
言い換えれば、今私のアプリはローカルでもherokuでも動作しません...あなたの助けを借りてこれを解決したいと思います. ありがとうございました。
だから私はいくつかのことを試しました(この順序で):
- 外し
gem 'sqlite3'
て付け替えましたgem 'pg'
- 私のgemfileに含まれています
ruby '2.0.0'
- heroku rake db:migrate
最初にローカルの問題を解決してみました。
Railsサーバーを(ローカルでテストするために)試したところ、次のエラーが発生しました。
どういうわけか、Heroku にデプロイするときに、私の Ruby バージョンと矛盾があり、2.0.0 を使用し、gemfile は 1.8 を想定していました。
ms.rb:777:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:211:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:1056:in `gem'
from /usr/bin/rails:18
Davids-MacBook-Air-6:portfolio davidngo$ rails server
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:777:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:211:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:1056:in `gem'
from /usr/bin/rails:18
私にとってそれを解決したもの:
- 実行してRuby 2.0.0を再インストールしました
rvm reinstall ruby 2.0.0
- #=> を実行
bundle install
すると、「Ruby のバージョンは 2.0.0 ですが、Gemfile には 1.8 が指定されています」というメッセージが表示されました。
Heroku の主な問題:
State changed from starting to complete
2013-08-20T03:29:43.118968+00:00 heroku[run.2135]: Error R99 (Platform error) -> Failed to launch the dyno within 10 seconds
2013-08-20T03:29:43.119187+00:00 heroku[run.2135]: Stopping process with SIGKILL
2013-08-20T03:31:00.784270+00:00 heroku[router]: at=info method=GET path=/ host=shrouded-citadel-6554.herokuapp.com fwd="107.193.213.240" dyno=web.1 connect=2ms service=24ms status=500 bytes=643
2013-08-20T03:31:00.800238+00:00 app[web.1]:
2013-08-20T03:31:00.800238+00:00 app[web.1]: Started GET "/" for 107.193.213.240 at 2013-08-20 03:31:00 +0000
2013-08-20T03:31:00.800238+00:00 app[web.1]:
2013-08-20T03:31:00.802209+00:00 app[web.1]: Processing by CollectionsController#index as HTML
2013-08-20T03:31:00.808688+00:00 app[web.1]: Completed 500 Internal Server Error in 6ms
2013-08-20T03:31:00.810234+00:00 app[web.1]:
2013-08-20T03:31:00.810234+00:00 app[web.1]: WHERE a.attrelid = '"collections"'::regclass
2013-08-20T03:31:00.810234+00:00 app[web.1]: ^
2013-08-20T03:31:00.810234+00:00 app[web.1]: LINE 4: WHERE a.attrelid = '"collections"'::regclass
2013-08-20T03:31:00.810234+00:00 app[web.1]: : SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
2013-08-20T03:31:00.810234+00:00 app[web.1]: FROM pg_attribute a LEFT JOIN pg_attrdef d
2013-08-20T03:31:00.810234+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR: relation "collections" does not exist
2013-08-20T03:31:00.810234+00:00 app[web.1]: ORDER BY a.attnum
2013-08-20T03:31:00.810234+00:00 app[web.1]: ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2013-08-20T03:31:00.810234+00:00 app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped
2013-08-20T03:31:00.810392+00:00 app[web.1]: ):
2013-08-20T03:31:00.810392+00:00 app[web.1]: app/controllers/collections_controller.rb:4:in `index'
2013-08-20T03:31:00.810392+00:00 app[web.1]:
2013-08-20T03:31:00.810392+00:00 app[web.1]:
2013-08-20T03:31:01.224316+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=shrouded-citadel-6554.herokuapp.com fwd="107.193.213.240" dyno=web.1 connect=3ms service=8ms status=200 bytes=0
私にとってそれを解決したもの:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
heroku run rake db:setup
heroku restart
heroku open
- このスレッドの同様のエラー: Heroku Postgres Error: PGError: ERROR: relationship "organizations" does not exist (ActiveRecord::StatementInvalid)
- 参考になる関連スレッド: Heroku で DB を空にする方法 (データベースの空化 、データのシードなど)
関連ファイルと重要ファイル:
database.yml: 開発: アダプター: sqlite3 データベース: db/development.sqlite3 プール: 5 タイムアウト: 5000
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: postgresql
encoding: utf8
database: portfolio_production
pool: 5
username:
password:
Gemfile で:
source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '3.2.3'
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end