web-dev-qa-db-fra.com

Pas de pool de connexion pour ActiveRecord :: Base

J'essaie d'utiliser Rails 4.2.6 pour développer une application. J'essaie d'utiliser postgres pour la base de données. Le serveur démarre correctement, mais lorsque j'essaie de charger une page, il génère l'erreur "Aucun pool de connexions pour ActiveRecord :: Base". 

Qu'est ce que ça pourrait être? 

MODIFIER

Le petit bijou ne fonctionnait pas correctement. Je devais le commenter avant de démarrer le serveur, puis le retirer de mon GemFile par la suite. J'ai réalisé que j'utilisais Ruby 2.3 au lieu de Ruby 2.0 (comme prévu). J'ai supprimé Ruby 2.3 et tout mis en place dans l'environnement Ruby 2.0. Cela fonctionne maintenant correctement.

J'avais lu quelque part qu'il y avait des problèmes avec le "pg" dans les nouvelles versions de Rails, obligeant les gens à utiliser "gem install pg --pre" à la place pour installer le gem. J'ai essayé cela, mais mon application nécessitait alors la gemme 'pg' dans mon GemFile et, eh bien, le problème mentionné ci-dessus s'est présenté à nouveau. 

Voici comment mon fichier database.yml s'est retrouvé:

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

  development:
     <<: *default
     database: myDbName
7

Si vous rencontrez cette erreur à partir d'une tâche rake, il est probable que vous n'exécutez pas la tâche :environment avant votre tâche.

En changeant:

task :task_name do
end

à:

task task_name: :environment do
end

Devrait résoudre le problème.

19
golfadas

Ce problème survient lorsque le serveur ne parvient pas à trouver la base de données correspondante sur laquelle extraire les données.

J'ai eu le même problème de mon côté, j'ai mis à jour ma version de Sqlite3, qui était supérieure à la version prise en charge par la version actuelle de Puma Server.

Je devais simplement désinstaller la version Sqlite3, puis installer la version prise en charge par la version actuelle de Puma Server.

gem uninstall sqlite3

Cela désinstallera la version mise à jour de Sqlite3, puis vous exécuterez

gem install sqlite3

indiquant la version supportée par votre serveur actuel.

Ou vous pouvez également ouvrir votre fichier Gemfile, puis inclure la version de la base de données que vous utilisez, puis exécuter

bundle update

pour installer la version de la base de données que vous avez spécifiée.

J'espère que ça aide.

2
PromisePreston

Pour PostgreSQL, votre fichier database.yml devrait ressembler à ceci:

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

Assurez-vous également que la gemme est installée: dans votre Gemfile:

gem 'pg'

Enfin, redémarrez votre serveur. 

J'espère que cela pourra aider

Edit: J'ai presque oublié, assurez-vous que vous avez votre PostgresSQL en cours d'exécution, vérifiez ce lien pour le téléchargement et la configuration.

2
thomasstephn

Vérifiez le database.yml si tous les paramètres sont corrects. Si c'est la première fois et que vous n'avez pas encore créé la base de données, utilisez cette commande pour créer la base de données.

rake db:create

Si la base de données existe déjà, essayez de réinitialiser les migrations de la base de données,

rake db:migrate:reset

J'espère que ça va résoudre le problème. Accédez à la console Rails et essayez quelque chose pour vérifier si cela fonctionne ou non. 

1
M. Karim

lorsque vous exécutez Rails db:migrate dans la base de données, des lignes seront créées en fonction de vos fichiers de migration. vous pouvez voir le schéma pour plus d'informations.

0
Anand Raja

Rails 5

Nouvelle application

Utilisation de Postgresql pour les tests et le développement

Les spécifications s'exécutent pour que Rails puisse se connecter à Postgresql

Mais lorsque j'ai lancé l'application Web, le message "Aucun pool de connexions avec l'identifiant principal trouvé" a été trouvé.

Ran 'bin/Rails db: migrate: reset' et a redémarré l'application. Ça a marché. Aucune idée pourquoi.

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

Je devais simplement redémarrer le serveur pour que l'avertissement s'en aille. 

0
The Whiz of Oz

J'ai rencontré le même problème lorsque j'essaie d'accéder au modèle avant de créer la base de données.

Assurez-vous que vous exécutez rake db:migrate au moins une fois.

Si vous avez déjà exécuté la migration, vérifiez la base de données comme indiqué dans les réponses précédentes.

0
sathya_dev