0

Im making a web app with rails, using posgresql as my database. I was getting a weird error 'role my_app does not exist' everytime i tried to run rake db:create:all. but i found out that if you comment out or remove the username and password fields from the database.yml, then everything works fine. Is this bad? would this cause some problems later on?

here is my database.yml, as you see, ive commented out username and password:

    development:
  adapter: postgresql
  encoding: unicode
  database: db/website_test_development
  pool: 5
  #username: website_test
  #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.
  #host: localhost

  # The TCP port the server listens on. Defaults to 5432.
  # If your server runs on a different port number, change accordingly.
  #port: 5432

  # Schema search path. The server defaults to $user,public
  #schema_search_path: myapp,sharedapp,public

  # Minimum log levels, in increasing order:
  #   debug5, debug4, debug3, debug2, debug1,
  #   log, notice, warning, error, fatal, and panic
  # Defaults to warning.
  #min_messages: notice

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: postgresql
  encoding: unicode
  database: db/website_test_test
  pool: 5
  #username: website_test
  #password:

production:
  adapter: postgresql
  encoding: unicode
  database: db/website_test_production
  pool: 5
  #username: website_test
  #password:
jsanch16
  • 609
  • 1
  • 8
  • 9
  • Post your `database.yml` and we'll be in a position to help! – Richard Peck Apr 17 '14 at 06:49
  • If you're in control of the DB, I'd say you've not set the `username` / `password` for it. If this is the case, it's a DB issue, not Rails. Have you set up the db to have no user attached? – Richard Peck Apr 17 '14 at 06:59
  • i havent set up any username or password for the db. How do i do that? – jsanch16 Apr 17 '14 at 07:07
  • 1
    You'll need to create a new user in PGSQL & assign them to the DB. I can give you details if you want, although it will be a quick search on Google? – Richard Peck Apr 17 '14 at 07:08
  • IMO if your database is on your local machine(which is the case for development environment) then you shouldnt worry. As far for production or staging envs are concerned, if you are setting up the database server yourself(eg on AWS-EC2 or DigitalOcean) then you should create a postgres who has access only to your application database. For creating a user in postgres, checkout http://stackoverflow.com/questions/19953653/how-to-set-up-postgres-database-for-local-rails-project/19954534#19954534 – Prasad Surase Apr 17 '14 at 07:10
  • i'm putting the web app on heroku, so does this mean i have to set up a username and password for it? – jsanch16 Apr 17 '14 at 07:24

1 Answers1

0

"role my_app does not exist" means it's complaining that the DB user doesn't exist:

http://www.postgresql.org/docs/current/static/sql-createuser.html

You'll want to refer to the heroku docs for your particular setup, as they likely have special scripts in place to do the same:

https://devcenter.heroku.com/articles/heroku-postgresql

Denis de Bernardy
  • 75,850
  • 13
  • 131
  • 154