Rails 3.1 - Толчок к Heroku - Ошибки при установке адаптера postgres? - PullRequest
39 голосов
/ 04 сентября 2011

Я только что обновился до Rails 3.1, и первое приложение, которое я пытался развернуть на Heroku, столкнулось с проблемой, связанной с адаптером Postgres.Я могу отправить приложение на heroku, но затем, когда я пытаюсь перенести базу данных, я получаю следующую ошибку:

heroku rake db: migrate

rake aborted!
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` 
(pg is not part of the bundle. Add it to Gemfile.)
Tasks: TOP => db:migrate => db:load_config
(See full trace by running task with --trace)

, когда я пытаюсь предложить ихустановить я получаю:

ERROR:  Could not find a valid gem 'activerecord-postgresql-adapter' (>= 0) in any repository
ERROR:  Possible alternatives: activerecord-postgis-adapter, activerecord-jdbcpostgresql-adapter, activerecord-postgresql-cursors, activerecord-jdbcmysql-adapter, activerecord-jdbcmssql-adapter

, что уже кажется странным ... так какой же точный драгоценный камень я должен установить, чтобы заставить эту вещь работать, если не то, что они говорят, что я должен установить ??

Когда я пытаюсь установить gem pg, я получаю:

Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

/Users/jerometufte/.rvm/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    ...

В настоящее время я использую SQLite3.Любая помощь очень ценится, это сбивает меня с толку.

Ответы [ 3 ]

42 голосов
/ 04 сентября 2011

Опция 1:

Добавьте pg к вашему Gemfile, но не пытайтесь установить его локально.

$ cat Gemfile
...
group :production do
  # gems specifically for Heroku go here
  gem "pg"
end

# Skip attempting to install the pg gem
$ bundle install --without production

Опция 2 (Debian / Ubuntu):

Добавьте pg к вашему Gemfile, но сначала установите необходимые компоненты.

$ cat Gemfile
...
group :production do
  # gems specifically for Heroku go here
  gem "pg"
end

# Install the pg gem's dependencies first
$ sudo apt-get install libpq-dev
# Then install the pg gem along with all the other gems
$ bundle install
4 голосов
/ 04 сентября 2011

Вам определенно нужен pg в Gemfile для Heroku.

Об ошибке, которую вы получаете локально: убедитесь, что у вас установлен postgres, запустите gem install pq -- --with-pg-config=[path to wherever your pg-config binary is], затем установите пакет.

В качестве альтернативы, если ваша локальная база данных работает нормально (либо потому, что вы используете sqlite или postgres-pr), вы можете поместить строку gem 'pg' в свой Gemfile в группу под названием production, а затем bundle install --without production local.

1 голос
/ 10 апреля 2012

Более свежая информация: это было связано с другой версией pg gem локально.

У меня уже был pg в рабочей группе (я запускаю sqllite локально), но Heroku все еще рвал.

Проблема исчезла для моего нового приложения Rails 3.1, когда я:

rm Gemfile.lock
touch Gemfile
bundle install
git add .
git commit -am "wiped Gemfile.lock re-ran bundle install"
git push heroku master

работал как заклинание, когда я тогда бежал heroku run rake db:migrate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...