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
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.
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.
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.
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.
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.
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
Je devais simplement redémarrer le serveur pour que l'avertissement s'en aille.
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.