Синтаксическая ошибка YAML при запуске "heroku run rake db: migrate" в моем приложении Rails - PullRequest
0 голосов
/ 23 февраля 2019

Я искал каждое решение этой проблемы часами, но просто не могу заставить его работать.

У меня есть приложение Rails, и я пытаюсь развернуть его на heroku, но когда язапустите heroku run rake db:migrate, я получаю эту ошибку:

rake aborted!
YAML syntax error occurred while parsing /app/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 7 column 3

Я уже использовал YAML-валидатор для проверки database.yml, но он все еще не работает.Вот как это выглядит:

# database.yml
--- 
default: 
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development: 
  adapter: postgresql
  database: chamada_development
  encoding: unicode
  password: "<%= ENV['CHAMADA_DATABASE_PASSWORD'] %>"
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: chamada
production: 
  adapter: postgresql
  database: chamada_production
  encoding: unicode
  password: "<%= ENV['CHAMADA_DATABASE_PASSWORD'] %>"
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: chamada
test: 
  adapter: postgresql
  database: chamada_test
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

Как я могу решить эту проблему?Понятия не имею.

Ответы [ 3 ]

0 голосов
/ 23 февраля 2019

ОБНОВЛЕНИЕ: Я некоторое время не работал над Heroku, однако я нашел старый проект с такими заметками в моем файле database.yml:

# 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'] %>

Возможно, вам понадобится убедиться, что у вас естьпеременные окружения установлены правильно.Проверьте, запустив heroku config --app <your-app-name>

Вам не нужно ----

Если вы собираетесь установить значение по умолчанию, вы также можете использовать его, чтобы не повторяться.А также используйте одинарные кавычки и удалите интерполяцию строк.Вы можете добавить пустые строки между каждой группой.

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

development:
  <<: *default 
  database: chamada_development
  password: <%= ENV['CHAMADA_DATABASE_PASSWORD'] %>
  username: chamada

production: 
  <<: *default
  url: <%= ENV['DATABASE_URL'] %>

test:
  <<: *default
  adapter: postgresql
  database: chamada_test
0 голосов
/ 24 февраля 2019

Я только что решил, начиная с шага, чтобы развернуть приложение в Heroku.

0 голосов
/ 23 февраля 2019

Используйте одинарные кавычки в строке

  password: <%= ENV['CHAMADA_DATABASE_PASSWORD'] %>

Вы использовали двойные кавычки, поэтому было похоже:

"<%= ENV[" CHAMADA_DATABASE_PASSWORD "] %>"

Этопочему ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...