我花了几个小时寻找这个问题的每一个解决办法,但就是找不到。
我有一个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 validator来验证我的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条答案
按热度按时间2w3kk1z51#
行中使用单引号
字符串
你使用了双引号,所以它就像:
"<%= ENV["
CHAMADA_DATABASE_PASSWORD
"] %>"
这就是为什么错误。
wvyml7n52#
更新:我已经有一段时间没有在Heroku上工作了,但是我在我的数据库.yml文件中发现了一个旧项目,其中包含以下注解:
字符串
您可能需要确保正确设置了环境变量。通过运行
heroku config --app <your-app-name>
进行检查不需要
----
如果你要设置默认值,你也可以用它来避免重复。还可以使用单引号并删除字符串插值。您可以在每个组之间添加空行。
型
dgiusagp3#
我只是一步一步地解决了它,在Heroku中部署应用程序。