This is a vanilla JavaScript Front-End Rails backend website. It was working locally then I put it on heroku and now I am getting the error:
"Rails couldn't infer whether you are using multiple databases from your database.yml and can't generate the tasks for the non-primary databases. If you'd like to use this feature, please simplify your ERB."
this is when I attempt rake db:create, rake db:migrate, etc etc etc. I cannot find any good resources on how to fix this. I read about putting a line in the puma file such that it could translate erb. I read I need to put "LESS" in my database.yml file. Nothing has worked and even similar posts here on stack overflow do not give much help.
database.yml
# PostgreSQL. Versions 9.3 and up are supported.
#
# Install the pg driver:
# gem install pg
# On macOS with Homebrew:
# gem install pg -- --with-pg-config=/usr/local/bin/pg_config
# On macOS 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
https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: tempGradientRailsJsonAPIJS_development
username: postgres
password: *******
host: localhost
# 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: tempGradientRailsJsonAPIJS
# 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: tempGradientRailsJsonAPIJS_test
# As with config/credentials.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 https://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: <%= ENV['DATABASE_URL'] %>
username: tempGradientRailsJsonAPIJS
password: <%= ENV['TEMPGRADIENTRAILSJSONAPIJS_DATABASE_PASSWORD'] %>
error in terminal
Rails couldn't infer whether you are using multiple databases from your database.yml and can't generate the tasks for the non-primary databases. If you'd like to use this feature, please simplify your ERB.
rake aborted!
YAML syntax error occurred while parsing /mnt/c/Users/swordfish/dev/flatiron/Portfolio/frontBack/tempGradientRailsJsonAPIJS/config/database.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): did not find expected key while parsing a block mapping at line 17 column 1
/home/swordfish/.rvm/gems/ruby-2.6.1/gems/railties-6.0.2.2/lib/rails/application/configuration.rb:246:in `rescue in database_configuration'
/home/swordfish/.rvm/gems/ruby-2.6.1/gems/railties-6.0.2.2/lib/rails/application/configuration.rb:221:in `database_configuration'
/home/swordfish/.rvm/gems/ruby-2.6.1/gems/activerecord-6.0.2.2/lib/active_record/railtie.rb:39:in `block (3 levels) in <class:Railtie>'
/home/swordfish/.rvm/gems/ruby-2.6.1/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/home/swordfish/.rvm/gems/ruby-2.6.1/bin/ruby_executable_hooks:24:in `eval'
/home/swordfish/.rvm/gems/ruby-2.6.1/bin/ruby_executable_hooks:24:in `<main>'
Caused by:
Psych::SyntaxError: (<unknown>): did not find expected key while parsing a block mapping at line 17 column 1
/home/swordfish/.rvm/gems/ruby-2.6.1/gems/railties-6.0.2.2/lib/rails/application/configuration.rb:228:in `database_configuration'
/home/swordfish/.rvm/gems/ruby-2.6.1/gems/activerecord-6.0.2.2/lib/active_record/railtie.rb:39:in `block (3 levels) in <class:Railtie>'
/home/swordfish/.rvm/gems/ruby-2.6.1/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/home/swordfish/.rvm/gems/ruby-2.6.1/bin/ruby_executable_hooks:24:in `eval'
/home/swordfish/.rvm/gems/ruby-2.6.1/bin/ruby_executable_hooks:24:in `<main>'
Tasks: TOP => db:migrate => db:load_config
(See full trace by running task with --trace)
database.yml
is syntactically invalid. To fix that, follow the instructions in the error message, and learn about YAML syntax. Re: the heroku problem, see Etienne's answer below about theurl:
key. – Jared Beck