Doing freelance, I keep on getting on new projets.
I find postgresql config highly complicated when being used in development mode only (I totally understand that production requirements are much different).
What I want to achieve is to config my postgres so that whatever username/password/port/connexion mode is used, it has all the rights on the DB (as security is no matter here). Working with Rails, all the config is in config/database.yml
and I don't want to change anything from the file itself.
I achieved having any password_less authentication for every connexion (local and TCP), but doing this:
# /etc/postgresql/9.3/main/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 0.0.0.0/0 trust
And:
# /etc/postgresql/9.3/main/postgresql.conf
listen_addresses = '*'
As from this Post.
But if the user (eg. appname_dev
) doesn't exists, I get:
FATAL: role "appname_dev" does not exist
This Post allows me to create the user in 1 line, which is fair enough (sudo -u postgres createuser -d -R -P appname_dev
), but I would really like this to be plug and play.
- How can I achieve that?
- Ain't there any development installation mode on postgres where by default, credentials would be much lighter configured that the current one?
- Am I missing some best practice that make this not being a problem?
I understand the port thing can be tricky, but IMHO, the rest should not!
Thanks for the help!