web-dev-qa-db-ja.com

ActiveRecord :: Baseの接続プールはありません

Rails 4.2.6を使用してアプリを開発しようとしています。データベース用にpostgresを使用しようとしています。サーバーは正常に起動しますが、ページをロードしようとすると、 ActiveRecord :: Baseのプール」エラー。

どうなり得るか?

編集

Pg gemは適切に機能していませんでした。サーバーを起動する前にコメントし、その後GemFileからコメント解除する必要がありました。私はRuby 2.0の代わりにRuby 2.0(意図したとおり)を使用していることに気付きました。私はRuby 2.3を削除し、 Ruby 2.0環境ですべてを起動します。現在は正常に動作しています。

新しいRails=リリースでは、gemをインストールする代わりに 'gem install pg --pre'を使用する必要があるという、gemに問題があることをどこかで読んでいました。 、しかしその後、私のアプリは私のGemFileに 'pg' gemを必要としていたので、上記の問題が再び現れました。

これは私のdatabase.ymlファイルがどのように終わったかです:

  default: &default
     adapter: postgresql
     encoding: unicode
     Host: localhost
     username: -------
     password: -------
     pool: 5

  development:
     <<: *default
     database: myDbName
11

Rakeタスクからこのエラーが発生している場合は、:environmentタスクの前のタスク。

変化:

task :task_name do
end

に:

task task_name: :environment do
end

問題を修正する必要があります。

26
golfadas

この問題は、サーバーがデータのプル元となる対応するデータベースを見つけることができない場合に発生します。

私は最後から同じ問題を抱えていました。Sqlite3のバージョンを更新しましたが、現在のPumaサーバーのバージョンがサポートしているバージョンよりも高いバージョンでした。

単にSqlite3バージョンをアンインストールしてから、Puma Serverの現在のバージョンでサポートされているバージョンをインストールする必要がありました。

gem uninstall sqlite3

これにより、更新されたバージョンのSqlite3がアンインストールされ、現在のサーバーでサポートされているバージョンを示す以下のコードを実行します。

gem install sqlite3

または、Gemfileを開いて、使用しているデータベースのバージョンを含めることもできます

gem 'sqlite3', '~> 1.3.6' 

N/B: sqlite3バージョンは、この回答を書いている時点での最新バージョンです

そして、実行します

bundle update

指定したデータベースのバージョンをインストールします。

それで全部です。

これが役立つことを願っています。

7
Promise Preston

database.ymlすべての設定に問題がない場合。初めてデータベースを作成していない場合、このコマンドを使用してデータベースを作成します

rake db:create

データベースが既に存在する場合は、dbの移行をリセットしてください。

rake db:migrate:reset

それが問題を解決することを願っています。 Rails consoleに移動して、動作するかどうかを確認してください。

3
M. Karim

PostgreSQLの場合、database.ymlファイルは次のようになります。

default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: 5

development:
  <<: *default
  database: your_db_name

また、gemがインストールされていることを確認してください:Gemfileで:

gem 'pg'

最後に、サーバーを再起動します。

役立つことを願っています

編集:私はほとんど忘れていました。PostgresSQLが実行されていることを確認し、ダウンロードとセットアップについて このリンク を確認してください。

3
thomasstephn

実行中の場合Rails db:migrateデータベース行の移行ファイルに従って作成されます。詳細についてはスキーマをご覧ください。

0
Anand Raja

Rails 5

新しいアプリ

テストと開発の両方にPostgresqlを使用する

仕様が実行されるため、RailsはPostgresqlに接続できます

しかし、Webアプリを起動すると、「プライマリIDの接続プールが見つかりません」というメッセージが表示されました。

「bin/Rails db:migrate:reset」を実行し、アプリを再起動しました。動いた。理由はわかりません。

database.yml:

    development:
      adapter: postgresql
      encoding: unicode
      database: Rails5_development
      pool: 5
      username: foo
      password: bar
      Host: localhost
      port: 5432

    test:
      adapter: postgresql
      encoding: unicode
      database: Rails5_test
      pool: 5
      username: foo
      password: bar
      Host: localhost
      port: 5432
0
rodmclaughlin

警告が消えるには、サーバーを再起動する必要がありました。

0
The Whiz of Oz

データベースを作成する前にモデルにアクセスしようとすると、同じ問題が発生しました。

rake db:migrateを少なくとも1回実行してください。

すでに移行を実行している場合は、前の回答で述べたようにデータベースを確認してください。

0
sathya_dev