0

ローカルマシンにインストールが機能していますが、herokuでは同じことができませんでした。

私が行った唯一の変更:

  • firefly.ymlのホスト名をrxlcc.herokuapp.comに変更します
  • Gemfile内の他のデータベースをコメントアウトします。コメントはありません。

私のリポジトリ:https ://github.com/hayksaakian/rxlcc

github変更ログ:https ://github.com/hayksaakian/rxlcc/commit/d2e2f926b228372a9ff7861e918bdf193a3c3bca

本番データベースへの接続がないためだと思いますが、どこに追加するかわかりません

2012-12-31T05:36:20+00:00 heroku[web.1]: Starting process with command `bundle exec rackup config.ru -p 36424`
2012-12-31T05:36:26+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/syck.rb:135:in `load': syntax error on line 27, col 0: `adapter = uri.scheme' (ArgumentError)
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/config.ru:2:in `block in <main>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /usr/local/lib/ruby/1.9.1/syck.rb:135:in `load'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/lib/firefly/database.rb:8:in `config'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/lib/firefly/database.rb:13:in `<top (required)>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/lib/firefly/database.rb:4:in `connect!'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:137:in `start'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/bin/rackup:4:in `<top (required)>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/config.ru:1:in `new'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/rackup:19:in `<main>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/lib/firefly.rb:30:in `<top (required)>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/config.ru:1:in `<main>'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/config.ru:2:in `require'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:252:in `start'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:200:in `app'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/rackup:19:in `load'
2012-12-31T05:36:26+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file'
2012-12-31T05:36:28+00:00 heroku[web.1]: Process exited with status 1
2012-12-31T05:36:28+00:00 heroku[web.1]: State changed from starting to crashed
2012-12-31T05:41:04+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=rxlcc.herokuapp.com fwd=71.212.33.130 dyno= queue= wait= connect= service= status=503 bytes=
2012-12-31T05:41:05+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=rxlcc.herokuapp.com fwd=71.212.33.130 dyno= queue= wait= connect= service= status=503 bytes=

私のherokuアドオン:

heroku-postgresql:dev  HEROKU_POSTGRESQL_NAVY

アップデート:

lib / firefly/server.rbに行を追加してみました

  # suggested by iain on stackoverflow
  @config[:database_url] = ENV["DATABASE_URL"]

これは何も変わらなかったようです

https://github.com/hayksaakian/rxlcc/commit/638bb8b215cf09f7edbafc0f21e964dfc05f86f2

    2013-01-02T06:32:19+00:00 heroku[web.1]: State changed from crashed to starting
    2013-01-02T06:32:22+00:00 heroku[web.1]: Starting process with command `bundle exec rackup config.ru -p 18667`
    2013-01-02T06:32:25+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/syck.rb:135:in `load': syntax error on line 27, col 0: `adapter = uri.scheme' (ArgumentError)
    2013-01-02T06:32:25+00:00 app[web.1]:   from /usr/local/lib/ruby/1.9.1/syck.rb:135:in `load'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/lib/firefly/database.rb:8:in `config'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/lib/firefly/database.rb:4:in `connect!'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/lib/firefly/database.rb:13:in `<top (required)>'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/lib/firefly.rb:30:in `<top (required)>'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/config.ru:2:in `require'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/config.ru:2:in `block in <main>'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/config.ru:1:in `new'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/config.ru:1:in `<main>'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:200:in `app'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:252:in `start'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:137:in `start'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/bin/rackup:4:in `<top (required)>'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/rackup:19:in `load'
    2013-01-02T06:32:25+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/rackup:19:in `<main>'
    2013-01-02T06:32:26+00:00 heroku[web.1]: Process exited with status 1
    2013-01-02T06:32:27+00:00 heroku[web.1]: State changed from starting to crashed
    2013-01-02T06:37:44+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=rxlcc.herokuapp.com fwd=71.212.33.130 dyno= queue= wait= connect= service= status=503 bytes=
    2013-01-02T06:37:44+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=rxlcc.herokuapp.com fwd=71.212.33.130 dyno= queue= wait= connect= service= status=503 bytes=
4

1 に答える 1

1

host:はい、 yml ファイルの下にデータベースの URL を指定する必要があります。Heroku サイトの設定ページで URL を確認するか、heroku config --app rxlccDATABASE_URL を実行して探すことができます。

: Heroku を使用する場合は、.gitignore を変更して .yml ファイルをチェックインするように指示されています。そこに秘密鍵を保管するつもりなら、私はこれをしませんが、保管する場合は、リポジトリを公開しないでください! 他の誰かがシークレットを知っている場合は、それを再生成する必要があります。

個人的には、次の方法で秘密を追加します

heroku config:add SECRET_VARIABLE=blahblahblah --app rxlcc

そして、必要な場所でそれをアプリに読み込みます

my_secret_variable = ENV["SECRET_VARIABLE"]

アプリがhttps://github.com/hayksaakian/rxlcc/blob/master/lib/firefly/server.rb#L209とhttps://github.com/hayksaakian/rxlccの before ブロックで構成を設定していることがわかります/blob/master/lib/firefly/server.rb#L109 . どちらの時点でも、次のことを試すことができます。

@config[:database_url] = ENV["DATABASE_URL"]

シークレット変数を追加します。

于 2013-01-01T12:13:51.707 に答える