Search code examples
ruby-on-railspostgresqldeploymentcapistranoproduction-environment

Rails Capistrano deploy PG::ConnectionBad: FATAL: password authentication failed


deploy:migrating
      01 /usr/local/rvm/bin/rvm default do bundle exec rake db:migrate
      01 rake aborted!
      01 PG::ConnectionBad: FATAL:  password authentication failed for user "customuser"
...
Tasks: TOP => db:migrate

1) I can normally login to psql under customuser 2) command on serverRAILS_ENV=production rake db:migrate is workling 3) database.yml :

production:
  <<: *default
  database: app_production
  host: localhost
  username: customuser
  password: mypassword

4) /etc/postgresql/10/main/pg_hba.conf :

# "local" is for Unix domain socket connections only
local   all             all                                     md5

also tried peer


Solution

  • Solved. Needed to add gem https://github.com/capistrano-plugins/capistrano-postgresql

    In deploy.rb

    set :pg_without_sudo, false
    set :pg_host, 'localhost'
    set :pg_database, 'appname_production'
    set :pg_username, 'username'
    set :pg_ask_for_password, true