Search code examples
ruby-on-railspostgresqlmacosruby-on-rails-5

Postgres 13.2 on rails 5.2.4.1: ActiveRecord::NoDatabaseError: FATAL: database * does not exist on rake db:create


I am trying to set up the project on my local on macOS Catalina 10.15.7, rails 5.2.4 and postgres 13.2. But when I try to create database by running rake db:create or bundle exec rake db:create or rails db:create, all result to same error. error logs:

rake aborted!
ActiveRecord::NoDatabaseError: FATAL:  database "scholarden_development" does not exist
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/gems/activerecord-5.2.4.1/lib/active_record/connection_adapters/postgresql_adapter.rb:696:in `rescue in connect'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/gems/activerecord-5.2.4.1/lib/active_record/connection_adapters/postgresql_adapter.rb:691:in `connect'....
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:22:in `eval'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:22:in `<main>'

Caused by:
PG::ConnectionBad: FATAL:  database "scholarden_development" does not exist
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/gems/pg-0.21.0/lib/pg.rb:56:in `initialize'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/gems/pg-0.21.0/lib/pg.rb:56:in `new'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/gems/pg-0.21.0/lib/pg.rb:56:in `connect'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/gems/activerecord-5.2.4.1/lib/active_record/connection_adapters/postgresql_adapter.rb:692:in `connect'
......5.2.4.1/lib/rails/application.rb:520:in `block in run_tasks_blocks'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:22:in `eval'
/Users/saqibshahzad/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:22:in `<main>'
Tasks: TOP => db:create => db:load_config => environment

my database.yml:

default: &default
  adapter: postgresql
  encoding: unicode
  template: template0
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>


development:
  <<: *default
  database: scholarden_development
  host: localhost
  port: 5432
  username: rails_dev
  password: password
production:
  <<: *default
  database: scholarden_production
  host: localhost
  port: 5432

Solution

  • You can create the database by this command instead.

    In your terminal: createdb {DB_NAME} in your case it will be createdb scholarden_development