我花了两天的时间才弄到这么远。但我几乎在那里。当我运行cap deploy:cold
部署失败此消息:为什么在将Rails应用程序部署到生产环境后Postgres身份验证失败?
servers: ["xxx"]
[xxx] executing command
** [out :: xxx] rake aborted!
** [out :: xxx] FATAL: password authentication failed for user "my_app"
我database.yaml
有这样的:
production:
adapter: postgresql
encoding: utf8
database: my_app_production
pool: 5
host: localhost
username: my_app
password: secret
我一个我创建了名为deployer
用户下运行cap deploy
。我在deployer
下安装了Postgres。我还创建了用户my_app
在PSQL:
create user my_app with password 'secret';
create database my_app_production owner my_app;
我验证了用户my_app
存在运行\du
。当我通过[email protected]
ssh并运行命令psql
时,我得到psql: FATAL: role "deployer" does not exist
。
我在做什么错?
是的,我创建'my_app'时,我被连接到'部署者'。我还为'postgres'用户设置了一个密码。这些是db中唯一的两个用户。我认为Postgresql希望用户登录到系统:system user ='deployer',但Rails尝试以'my_app'登录。 – dee
你可以把你的部署脚本?再次,我正在做同样的railscasts你是,它的工作。也许你在需要部署者的地方有my_app或什么的。 – Art
我的部署脚本与Railscasts完全相同。我想到了。 my_app的密码错误。确保你能够以'my_user'登录psql:'psql -h localhost -U my_app -d my_app_production'它会询问你输入的密码。看看这个要点,它有所有的说明:https://gist.github.com/abitdodgy/5600034 – dee