I'm developing a web using Rails 4. Trying to configure the production environment I noticed that neither the username nor the password are needed. I have the following configuration under database.yml:
development:
adapter: postgresql
encoding: unicode
database: walko
username: walko
password:
pool: 5
timeout: 5000
production:
adapter: postgresql
encoding: unicode
database: <%= ENV['DB_NAME'] %>
username:
password:
pool: 5
timeout: 5000
I can realize migrations and connections to the production database from rails console.
How is this possible?
Rails uses the Ruby Pg gem, which uses PostgreSQL's libpq client library.
libpq uses the current system user name if no user name is supplied.
No password is required by the server if peer, ident sameuser or trust authentication is used in pg_hba.conf. If the server doesn't request a password, libpq doesn't try to send one and doesn't care if one is missing.
You can actually supply the empty string for the database too; libpq will then use the db that's the same as your username if it exists.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With