我在本地计算机上安装了一个工作,但是无法在heroku上执行相同操作。
我所做的唯一改变:
我的回复:https://github.com/hayksaakian/rxlcc
github changelog: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=
my heroku addons:
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=
答案 0 :(得分:1)
是的,您需要在yml文件的host:
下指定数据库URL。您可以在Heroku网站的设置页面中看到该网址,也可以运行heroku config --app rxlcc
并查找DATABASE_URL。
注意:如果您要使用Heroku,说明会告诉您更改.gitignore并检入.yml文件。如果你要在那里保留密钥,那么我不会这样做,但如果你这样做,不要让回购公开一个!如果有其他人知道秘密,你< em>需要来重新生成它。
我个人会通过
添加任何秘密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/blob/master/lib/firefly/server.rb#L109之前的块中设置了配置。在任何一点你都可以尝试:
@config[:database_url] = ENV["DATABASE_URL"]
添加任何秘密变种。