web-dev-qa-db-ja.com

処理方法Ruby on Rails error: "postgresqlアダプターをインストールしてください:` gem install activerecord-postgresql-adapter '"

Ruby on Rails(RoR)アプリまたはRuby ActiveRecordフレームワークを使用するコードを実行すると、エラーメッセージが表示されます:

Postgresqlアダプターをインストールしてください:gem install activerecord-postgresql-adapter

実行しようとしています:

gem install activerecord-postgresql-adapter

また、失敗し、あなたを困らせます。

60
user71268

問題は誰も書いたことではありません。問題は、GEMの名前は「pg」ですが、postgresqlデータベースアダプタの名前が「postgres」ではなく「postgresql」であることです。

Database.ymlファイルの定義には以下を含める必要があります

  adapter: postgresql
127
mcr

Herokuから得た答えは次のとおりです(さまざまなpg gem、アダプター、およびこれに関する他の10の投稿で他のすべてを試した後)

1)Gemfileにgem 'pg'という行を追加します。

2)コマンドbundle installを実行して、gemをバンドルにインストールします。

3)GemfileおよびGemfile.lockの変更をステージングします。git add Gemfile Gemfile.lock

4)変更をコミットします:git commit -m "pg gemのインストール"

5)herokuへの再デプロイ:git Push heroku master

10
jstreebin

これは、新しい「pg」postgresqlライブラリがインストールされていないことを意味します。これは簡単に修正できます:

Sudo gem install pg

私(Dov)は、GEM_HOMEの設定とPATHへの〜/ .gem/Ruby/vers/binの追加について説明した他のソリューションをWeb上で見つけましたが、機能しませんでした。上記のソリューションは、Mark MansourのブログState of Fluxで提供されています: http://stateofflux.com/2008/7/13/activerecord-postgresql-adapter-in-Rails-2-1/ =

9
user71268

このエラーを引き起こすもう1つの深く隠れた状態があります。

ローカル環境変数DATABASE_URL = postgres:// mehmehmehが設定されている場合、いくつかのgem(Herokuの疑いがある)を使用すると、設定内のどこになくてもPostgresが必要であるとアプリに認識させます。そのenv変数を強制終了すれば大丈夫です。

5
Chad

これを試すことができます

Debian(squeeze)の場合:

aptitude install libdbd-pg-Ruby
2
Daniel134

Sudo apt-get install Ruby1.8-dev

その後...

gem install pg

私のために働いた!

1
KurtB

Database.yml環境データベースが正しいことを確認してください。 postgresqlの場合、mysql2または特定の環境で使用しているdbを参照するように変更する必要がある場合があります。

1
Doug

Ruby + PostgreSQLデータベースドライバー railsonpostgresql.com )の現在の状態を少しまとめました; Sudo gem install pgと思うおそらくあなたが望むものです。

0
tomcopeland

さまざまな検索結果を試しながら、たくさんインストールしました。 「postgresqlアダプターをインストールしてください:gem install activerecord-postgresql-adapter」というメッセージで文句を言うことをやめさせたのは、最終的に次のとおりでした。

  • 次のようなアダプターに関連するすべてのgemを削除しました。sudogem uninstall activerecord-jdbc-adapter; Sudo gem uninstall activerecord-jdbcpostgresql-adapter; Sudo gem uninstall activerecord-postgresql-adapter; Sudo gemアンインストールjdbc-postgres;

  • また、Gemfile内で次のようにアダプタへの参照を削除しました:gem 'activerecord-jdbcpostgresql-adapter'

  • Pg(0.15.1)のみをインストールしたままにします(pgの存在を確認するには、「gem list」を実行します)

その後、「rake db:create」を実行すると動作します。だから、私はpgが最新で動作していると思います。ただし、他の壊れたアダプターgemが存在する場合は使用されません。

0
Viet Pham