aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorschneems <richard.schneeman@gmail.com>2013-11-11 15:56:09 -0500
committerschneems <richard.schneeman@gmail.com>2013-12-19 21:41:52 -0500
commitdece621a21a84ab3c4c59d440694952421322317 (patch)
tree2c65d8e4580ffe77059c3bcecbee87ba5784c2de /railties
parente4cde5d58cbb09d1843796f96ba86225ff94fe05 (diff)
downloadrails-dece621a21a84ab3c4c59d440694952421322317.tar.gz
rails-dece621a21a84ab3c4c59d440694952421322317.tar.bz2
rails-dece621a21a84ab3c4c59d440694952421322317.zip
Do not expect database user with app name to exist
By default when creating a project with `--database=postgresql` the `config/database.yml` file that is generated has a user specified that is the same as the app name ``` development: adapter: postgresql encoding: unicode database: <%= app_name %>_development pool: 5 username: <%= app_name %> password: ``` This is counterintuitive and would rarely be valid. By default postgres creates a user with the current user name (http://www.postgresql.org/docs/9.3/static/database-roles.html) "it will have the same name as the operating system user that initialized the database cluster": ``` $ whoami schneems ``` If the `username` is left out postgresql will assume that you wish to log in as the default user ``` $ psql -c '\du' List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- schneems | Superuser, Create role, Create DB, Replication | {} ``` A good sensible default then for auto generated `database.yml` files is to remove the `username`, and have postgres attempt to connect to the database as the currently logged in user. Instead of submitting with a blank password, don't submit a password.
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml11
-rw-r--r--railties/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml11
2 files changed, 18 insertions, 4 deletions
diff --git a/railties/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml b/railties/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml
index ccd44cf54b..2776ba477f 100644
--- a/railties/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml
+++ b/railties/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml
@@ -6,13 +6,20 @@
default: &default
adapter: postgresql
encoding: unicode
- username: <%= app_name %>
- password:
development:
<<: *default
database: <%= app_name %>_development
+ # The specified database role being used to connect to postgres.
+ # To create additional roles in postgres see `$ createuser --help`.
+ # When left blank, postgres will use the default role. This is
+ # the same name as the operating system user that initialized the database.
+ #username: <%= app_name %>
+
+ # The password associated with the postgres role (username).
+ #password:
+
# Connect on a TCP socket. Omitted by default since the client uses a
# domain socket that doesn't need configuration. Windows does not have
# domain sockets, so uncomment these lines.
diff --git a/railties/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml b/railties/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml
index 1aaa53e707..bdf53726c0 100644
--- a/railties/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml
+++ b/railties/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml
@@ -20,13 +20,20 @@ default: &default
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: 5
- username: <%= app_name %>
- password:
development:
<<: *default
database: <%= app_name %>_development
+ # The specified database role being used to connect to postgres.
+ # To create additional roles in postgres see `$ createuser --help`.
+ # When left blank, postgres will use the default role. This is
+ # the same name as the operating system user that initialized the database.
+ #username: <%= app_name %>
+
+ # The password associated with the postgres role (username).
+ #password:
+
# Connect on a TCP socket. Omitted by default since the client uses a
# domain socket that doesn't need configuration. Windows does not have
# domain sockets, so uncomment these lines.