Ошибка Heroku при запуске rails3.1 приложение отсутствует postgres gem
Я пытаюсь развернуть на герою.
Rails 3.1.0.rc4,
Я получаю следующую ошибку из журналов Heroku:
Starting process with command: `thin -p 48902 -e production -R /home/heroku_rack/heroku.ru start`
2011-06-20T11:25:44+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.) (RuntimeError)
Я попытался установить activerecord-postgresql-адаптер, но затем получаю эту ошибку:
Could not find gem 'activerecord-postgresql-adapter (>= 0)' in any of the gem sources listed in your Gemfile.
Итак, я попытался добавить это в свой файл gem
gem 'pg'
который произвел эту ошибку:
Installing pg (0.11.0) with native extensions /Users/imac/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:533:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
любые идеи?
Ответы
Ответ 1
У вас есть PostgreSQL, установленный на вашем компьютере? Если вы этого не сделаете, сначала установите его, а затем установите pg gem.
# gemfile
group :production do
gem 'therubyracer-heroku', '0.8.1.pre3' # you will need this too
gem 'pg'
end
Ответ 2
Вам не нужно устанавливать Postgres локально. В своем Gemfile поместите "pg" в группу: production, как предлагает johnny-grass, а затем, когда вы запустите пакет, просто укажите - без производства, например:
bundle --without production
К сожалению, вы должны помнить этот аргумент при запуске пакета, но по крайней мере вам не нужно устанавливать и поддерживать postgres локально.
Обратите внимание, что Heroku "настоятельно рекомендует" использовать sqlite, заявив, что "ваша среда разработки и разработки должна быть максимально близка к идентичной" http://devcenter.heroku.com/articles/rails3
Ответ 3
Я нашел решение в этом Heroku article.
Как сказал Джаред, они предлагают создать другую группу для postgresql.