Ошибка 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.