Si vous avez une erreur :
PG::Error
fe_sendauth: no password supplied
Vous avez de bonnes nouvelles, votre application peut maintenant fonctionner avec la base de données PostgreSQL. (Mais vous devez configurer quelque chose)
Après avoir installé PostgreSQL, vous pouvez créer une nouvelle application Rails à l'aide de PostgreSQL par la commande :
rails new my_app -d postgresql
C'est database.yml
sera créé :
development:
adapter: postgresql
encoding: unicode
database: my_app_development
pool: 5
username: my_app
password:
test:
adapter: postgresql
encoding: unicode
database: my_app_test
pool: 5
username: my_app
password:
production:
adapter: postgresql
encoding: unicode
database: my_app_production
pool: 5
username: my_app
password:
Vous voyez que trois bases de données ont username
et password
champ, c'est l'utilisateur du compte dans Postgresql, trois bases de données dans database.yaml
fichier sera créé par cet utilisateur. Vous devez donc fournir username
et password
pour ça. Par défaut après l'installation de Postgresql, il a créé un utilisateur avec le nom d'utilisateur est postgresql
et le mot de passe est postgresql
. Vous pouvez l'utiliser.
Si vous souhaitez utiliser un autre utilisateur, ouvrez simplement pgAdmin III
et créez un nouvel utilisateur en faisant un clic droit sur Login Roles
et choisissez New login role
pour créer un nouvel utilisateur avec mot de passe. Ensuite, mettez ce nom d'utilisateur et ce mot de passe dans database.yaml
fichier.
Après cela, tout ce dont vous avez besoin maintenant, c'est de trouver et d'ouvrir pg_hba.conf
fichier pour faire une configuration pour l'application peut fonctionner avec PostgreSQL. Je n'utilise pas Windows depuis longtemps, donc je ne sais pas où il se trouve, mais vous pouvez le trouver dans le dossier que vous avez installé PostgreSQL. Exemple, si vous installez sur E:\
partition, vous pouvez peut-être la trouver dans :
E:\PostgreSQL\version\data
Après l'avoir trouvé, ouvrez et trouvez une ligne :
# "local" is for Unix domain socket connections only
local all all ident sameuser
Changez-le en :
# "local" is for Unix domain socket connections only
local all all md5
Redémarrez ensuite votre base de données Postgresql. Pour créer une base de données pour l'application, exécutez rake db:create
ou rake db:create:all
. Maintenant, votre application peut utiliser la base de données PostgreSQL maintenant, si heureux :).