Forum: Ruby on Rails PostgreSQL setup for Rails@Ubuntu

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
F2b38ee793ba71b959938a2526146db4?d=identicon&s=25 Marco Lobbia (fangorn)
on 2016-02-24 17:56
(Received via mailing list)
For long term stability, I suppose I may take for granted that the LTS
Ubuntu version of PostgreSQL would be better then installing through the
PostgreSQL apt repository.
The documentation I found on post installation setup suggests that
configuration may not be so diffucult.

Nevertheless I have a question about PostgreSQL superuser properties.
All the information (see for instance at
<> and at
seems to converge on the necessity of creating a database superuser with
login name that match my Ubuntu user name with:

sudo -u postgres createuser --superuser $USER

This, as far as I have understood, would allow the user and client
to connect to the database without requiring a password: would that be
working for all my Rails applications too?
If instead I chose to set a password with:

sudo -u postgres psql

should this password match my Ubuntu user password or be different?
In case I chose a different password, I wonder in the first place what
advantages there would be in choosing my Ubuntu login name as PostgreSQL
What is the best choice for Rails: no password, the same Ubuntu user
password or a different password?
Since in database.yml is recorded exactly this kind of sensitive
information, I suppose there might be security concerns after pushing
application to some Git repository hosting web site and to Heroku. Would
you rather suggest to edit .pgpass to keep sensitive information out of
*.yml file?

Finally, with PostgreSQL both in development and production, is the pg

I would really appreciate any help you can provide.
F2b38ee793ba71b959938a2526146db4?d=identicon&s=25 Marco Lobbia (fangorn)
on 2016-02-27 17:10
(Received via mailing list)
From 'man createuser':

       createuser creates a new PostgreSQL user (or more precisely, a
role). Only superusers and users with
       CREATEROLE privilege can create new users, so createuser must be
invoked by someone who can connect as a
       superuser or a user with CREATEROLE privilege.

When postgresql is installed, it also creates a user ‘postgres’ with
‘postgres’. It also creates a system account with same name ‘postgres’.
So this is why 'createuser' should be run as 'postgres' user.

It is possible to connect to postgresql only as a database user AND
an existing database.
During installation from the postgresql apt repository, postgresql only
creates the 'postgres' user and the 'postgres' database.
The 'psql' allow the current user to connect to the postgresql database
named after the user's name.
So, if the system user is 'dave' AND there is a 'dave' database it is
possible for 'dave' to connect to the 'dave' database with command
If 'dave' is also a database user but the database 'dave' was not
for dave to connect to postgresql it is necessary to specify an existing
database with:

$ psql -d postgres

Alternatively, it is possible for dave to connect to postgresql
the 'psql' command as the 'postgres' user with 'sudo':

$ sudo -u postgres psql
F2b38ee793ba71b959938a2526146db4?d=identicon&s=25 Marco Lobbia (fangorn)
on 2016-02-28 09:43
(Received via mailing list)
If posgresql is installed via PostgreSQL apt repository, in order for
to use the 'pg' gem it is also necessary to install the 'libpq-dev'
package, otherwise bundle install will fail. See at Stackoverflow Can't
find the 'libpq-fe.h header when trying to install pg gem.
This topic is locked and can not be replied to.