没有推到heroku

时间:2013-05-18 21:41:55

标签: ruby-on-rails postgresql heroku

我正在尝试将我的rails 3.2.12 app推送到heroku,后者配置了postgres数据库。我第一次跑git push heroku master时收到了以下错误。

Running: rake assets:precompile
rake aborted!
could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?

经过一些问题排查后,我发现了this个帖子并将以下行放在我的config/application.rb文件中:

config.assets.initialize_on_precompile = false

然后我运行heroku run rake db:migrate开始填充heroku数据库并收到以下错误:

Running rake db:create attached to terminal... up, run.4115
rake aborted!
undefined local variable or method `config' for main:Object
/app/config/application.rb:5:in `<top (required)>'
/app/Rakefile:5:in `require'
/app/Rakefile:5:in `<top (required)>'

有趣的是,application.rb的第5行是我添加的上一行:

config.assets.initialize_on_precompile = false

最后,我注意到我无法在application.rb文件中使用上面的行本地启动数据库 - 我收到以下错误:

config/application.rb:5:in `<top (required)>': undefined local variable or method `config' for main:Object (NameError)

这个问题看起来像是一个问题22.如何在不改变application.rb文件的情况下部署到heroku并在本地服务器上运行它?

2 个答案:

答案 0 :(得分:3)

确保config.assets.initialize_on_precompile = false位于正确的位置,如下所示:

module YourApplicationName
  class Application < Rails::Application

    config.assets.initialize_on_precompile = false

确保重启所有内容。

另外,如果上述方法不起作用,暂时解决方法是将Gemfile更改为:

group :development, :test do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

然后运行bundle install --without production

Heroku不建议使用其他数据库进行开发和生产。然而,这将工作,我已经多次使用它来轻松起床和运行

答案 1 :(得分:0)

我尝试添加

config.assets.initialize_on_precompile = false

to&#34; config / application.rb&#34;并上传我的项目到heroku,它上传没有任何错误,它无法正常工作,甚至rake命令都无法在heroku上运行。

我发现这篇关于heroku的文章: https://devcenter.heroku.com/articles/rails-4-asset-pipeline 其中说添加

config.serve_static_assets = true

到您的 config / application.rb ,然后它正常工作。使用&#34; rake资产进行测试时,它可以正常预编译:预编译&#34;在我的电脑上。并且我的项目已正确上传并显示出来的东西。