2

it was answered many times but I am too dumb and need someone to explain me like Im 5 years old.

I get:

C:\Users\Jaiel\Desktop\Uebung_3_Elias_Kechter_s0555064_SoSe_2018_AI_Web_Entwicklung\order_management>rails db:migrate
rails aborted!
PG::ConnectionBad: fe_sendauth: no password supplied
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

Im on Windows. Have a Rails 5 App, which works like a charm using sqlite3 as databse. But unfortnuately Heroku doesnt want me to have a worrking app and demands postgresql.

I dont know where to put my password.

This is my database.yml:

# PostgreSQL. Versions 9.1 and up are supported.
#
# Install the pg driver:
#   gem install pg
# On OS X with Homebrew:
#   gem install pg -- --with-pg-config=/usr/local/bin/pg_config
# On OS X with MacPorts:
#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
#   gem install pg
#       Choose the win32 build.
#       Install PostgreSQL and put its /bin directory on your path.
#
# Configure Using Gemfile
# gem 'pg'
#
default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: order_management_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: order_management

  # 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.
  #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:
  <<: *default
  database: order_management_test

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default
  database: order_management_production
  username: order_management
  password: <%= ENV['ORDER_MANAGEMENT_DATABASE_PASSWORD'] %>

I just want it to work for 2 hours now I have been reading and still dont understand what I am doing wrong.

I have tried to paste "password: pass" (my password) under the development section

but still get:

PG::ConnectionBad: FATAL:  Passwort-Authentification failed for user Jaiel
4
  • if i understand well, you had your dbs configuration with sqlite then you changed for pg ? you want all your environments running with pg or just production ? Commented May 9, 2018 at 16:07
  • nope I made a new one with the --database:postgresql option Commented May 9, 2018 at 16:38
  • Add username and password to development environment and create same user in postgre stackoverflow.com/questions/5189026/…. Then create database rake db:create Also make sure your pg gem is in your gemfile for all environments (but I think it is there already) Commented May 10, 2018 at 0:03
  • yeah I resolved it you are right. There was no role called Jaiel shakingmyhead Commented May 11, 2018 at 14:44

1 Answer 1

-1

It seems like you want to run your application in Heroku, and it will running with production mode. So Rails will get database infomations from database.yml and the production seciton.

In which, your setting for the database is: production: <<: *default database: order_management_production username: order_management password: <%= ENV['ORDER_MANAGEMENT_DATABASE_PASSWORD'] %> it says that the password will get from the server environment with the name ORDER_MANAGEMENT_DATABASE_PASSWORD.

If you don't know how to set that and your application is not a real product, you can replace <%= ENV['ORDER_MANAGEMENT_DATABASE_PASSWORD'] %> with the real password like abc123.


update 1.

Also, I have noticed that you put adapter: postgresql setting in default section, and your development section is inherented from the default section, so the database adapter for you development database setting is postgresql but sqlite.

You should fix the problem or you will get database error in your localhost development.

And for more and greater explaining, you can read Ruby on Rails Tutorial (Rails 5).


Sorry for my poor english.

Sign up to request clarification or add additional context in comments.

6 Comments

no I am far away from running it on heroku. I am trying to run it locally in development environment. I provide my password but it just wont let me Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "database"=>"order_management_development", "password"=>"5"}
I changed password in pgadmin to 5 and did password: 5 under develoment section it still fails authentification
Sorry for the wrong answer. I updated the answer. Create and use database in localhost, the default choice is sqlite, but you set your adapter to postgresql for all the environments. So change it to sqlite or add a line in development section.
Please read the book and write codes with the book, maybe you need to know more basics.
what do you eman with "Also, I have noticed that you put adapter: postgresql setting in default section, and your development section is inherented from the default section, so the database adapter for you development database setting is postgresql but sqlite."
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.