webentwicklung-frage-antwort-db.com.de

Kein Verbindungspool für ActiveRecord :: Base

Ich versuche mit Rails 4.2.6 eine App zu entwickeln. Ich versuche Postgres für die Datenbank zu verwenden. Der Server startet gut, aber wenn ich versuche, eine Seite zu laden, wird der Fehler "Kein Verbindungspool für ActiveRecord :: Base" ausgegeben. 

Was könnte es sein? 

BEARBEITEN

Der pg-Edelstein funktionierte nicht richtig. Ich musste es vor dem Start des Servers kommentieren und es anschließend aus meiner GemFile auskommentieren. Mir wurde klar, dass ich Ruby 2.3 anstelle von Ruby 2.0 (wie beabsichtigt) verwendete. Ich habe Ruby 2.3 entfernt und alles in der Ruby 2.0-Umgebung eingerichtet. Es funktioniert jetzt richtig.

Ich hatte irgendwo gelesen, dass es in neueren Rails-Versionen einige Probleme mit dem "pg" -Stein gab, und die Benutzer mussten stattdessen 'gem install pg --pre' zum Installieren des Edelsteins verwenden. Ich habe es versucht, aber dann brauchte meine App den "pg" -Edel in meiner GemFile-Datei. Nun, das oben genannte Problem wurde erneut angezeigt. 

So endete meine Datenbank.yml-Datei:

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

  development:
     <<: *default
     database: myDbName
7

Wenn dieser Fehler bei einer Rake-Task auftritt, wird die :environment-Task möglicherweise nicht vor Ihrer Task ausgeführt.

Ändern:

task :task_name do
end

zu:

task task_name: :environment do
end

Sollte das Problem beheben.

19
golfadas

Dieses Problem tritt auf, wenn der Server die entsprechende Datenbank nicht finden kann, von der er Daten abrufen muss.

Ich hatte dasselbe Problem von meinem Ende, ich habe meine Version von Sqlite3 aktualisiert, und es war höher als die Version, die die aktuelle Puma Server-Version unterstützt.

Ich musste einfach die Sqlite3-Version deinstallieren und dann die von der aktuellen Version von Puma Server unterstützte Version installieren.

gem uninstall sqlite3

Dadurch wird die aktualisierte Version von Sqlite3 deinstalliert und anschließend ausgeführt

gem install sqlite3

angabe der Version, die von Ihrem aktuellen Server unterstützt wird.

Sie können auch Ihre Gemfile-Datei öffnen und dann die Version für die Datenbank angeben, die Sie verwenden, und dann ausführen

bundle update

um die von Ihnen angegebene Version der Datenbank zu installieren.

Ich hoffe das hilft.

2
PromisePreston

Für PostgreSQL sollte Ihre database.yml-Datei ungefähr so ​​aussehen:

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

Stellen Sie außerdem sicher, dass Sie den Edelstein installiert haben: in Ihrem Gemfile:

gem 'pg'

Starten Sie schließlich Ihren Server neu. 

Hoffentlich hilft das

Edit: Ich habe fast vergessen, stellen Sie sicher, dass Sie Ihre PostgresSQL laufen haben, und klicken Sie auf this link , um den Download und das Setup durchzuführen.

2
thomasstephn

Überprüfen Sie den database.yml, ob alle Einstellungen in Ordnung sind. Wenn dies das erste Mal ist und Sie die Datenbank noch nicht erstellt haben, verwenden Sie diesen Befehl zum Erstellen der Datenbank

rake db:create

Wenn die Datenbank bereits vorhanden ist, versuchen Sie, die Datenbankmigrationen zurückzusetzen.

rake db:migrate:reset

Ich hoffe es löst das Problem. Gehen Sie zur Rails-Konsole und versuchen Sie etwas zu überprüfen, ob es funktioniert oder nicht. 

1
M. Karim

wenn Sie Rails db:migrate in der Datenbank ausführen, werden entsprechend Ihren Migrationsdateien Zeilen erstellt. Sie können das Schema für weitere Informationen sehen.

0
Anand Raja

Schienen 5

Neue App

Verwendung von Postgresql für Test und Entwicklung

Spezifikationen laufen, so dass sich Rails mit Postgresql verbinden kann

Aber als ich die Web-App startete, bekam ich "Es wurde kein Verbindungspool mit der ID-ID gefunden."

Ran 'bin/Rails db: migrate: reset' und die App neu gestartet. Es funktionierte. Keine Ahnung warum.

datenbank.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

Ich musste den Server einfach neu starten, damit die Warnung verschwindet. 

0
The Whiz of Oz

Beim Versuch, vor dem Erstellen der Datenbank auf das Modell zuzugreifen, ist das gleiche Problem aufgetreten.

Stellen Sie sicher, dass Sie rake db:migrate mindestens einmal ausführen.

Wenn Sie die Migration bereits ausführen, überprüfen Sie die Datenbank wie in den vorherigen Antworten erwähnt.

0
sathya_dev