Salut, j'essaye de connecter postgresql à mon projet Rails. J'apprends les tests mais mes tests ne s'exécutent pas en raison d'une erreur postgresql concernant un mot de passe incorrect:
Edmunds-MacBook-Pro:langexchange edmundmai$ rake test:units
rake aborted!
fe_sendauth: no password supplied
J'ai déjà lu et mon fichier pg_hba.conf était à l'origine déjà comme ceci:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
Host all all 127.0.0.1/32 trust
# IPv6 local connections:
Host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication edmundmai
voici mon fichier database.yml dans mon projet Rails
default: &default
adapter: postgresql
encoding: utf8
pool: 5
username: edmundmai
password:
development:
<<: *default
database: project_development
test:
<<: *default
database: project_test
production:
<<: *default
database: project_production
Est-ce que quelqu'un sait comment je pourrais résoudre ce problème? Nous pouvons discuter si c'est plus facile.
Vous devez d'abord changer:
local all all trust
à:
local all all md5
Ensuite, vous devez créer un super_user dans PostgreSQL avec username
et password
, après cela en ajoutant username
et password
du nouvel utilisateur à ton database.yml
fichier.
Pour créer un nouveau super_user
, ouvert Pg Admin III
et clic droit en bas Login Roles
pour créer un nouveau super utilisateur.
Assurez-vous d'avoir défini à la fois Rails_ENV et RACK_ENV sur votre serveur d'hébergement de production. J'ai eu un problème similaire où tout fonctionnait sauf rake
et la solution était d'ajouter RACK_ENV = production à mon environnement. Rails_ENV était déjà mis en production.
export RACK_ENV=production
bundle exec rake db:version
Vous devriez voir une sortie telle que:
Current version: 20121126151935
Solution: assurez-vous que votre application Rails a accès aux variables d'environnement Rails_ENV et RACK_ENV. Assurez-vous également qu'elles ont toutes les deux la même valeur.
Sur votre ordinateur local sous les sections test
et development
des database.yml
fichier, vous devez remplacer le username
par votre nom d'utilisateur connecté. Le générateur Rails le rend identique à votre nom d'application et cela ne fonctionnera pas. La section production
dépendra de votre configuration de production. Si vous utilisez heroku vous n'avez pas besoin de changer rien là-bas.
Il vous suffit de créer l'utilisateur/passw et le schéma (db) dans postgres avec pgadmin et de mettre user/passw dans database.yml. Lorsque j'ai essayé de créer une base de données avec rake db: create dans le dossier de projet actuel Rails, il a échoué, et l'erreur m'a été impossible de créer pour l'adaptateur postgreSQL. Après cela, j'ai créé le schéma pour = Rails projet avec pgadmin, tout va bien sans aucun changement dans pg_hba.conf.