Rails 3.1 - 推送到Heroku - 错误安装postgres适配器?

tud*_*ddy 39 postgresql heroku ruby-on-rails-3.1

我刚刚升级到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)
Run Code Online (Sandbox Code Playgroud)

当我尝试他们的建议安装我得到:

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
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪...所以我应该安装什么确切的宝石来让这个东西工作,如果不是他们说我应该安装?

当我尝试安装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
    ...
Run Code Online (Sandbox Code Playgroud)

我目前正在使用SQLite3.任何帮助非常感谢,这令我感到困惑.

yfe*_*lum 42

选项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
Run Code Online (Sandbox Code Playgroud)

选项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
Run Code Online (Sandbox Code Playgroud)