“解析config / database.yml时发生了YAML语法错误”Ruby on Rails

时间:2018-04-25 02:58:55

标签: mysql ruby-on-rails database yaml mariadb

每次我运行我的rails应用程序时,我都会在database.yml的production部分中看到指向“encoding:utf8”的错误。如果我重新加载页面,它会把我带到应用程序,但我担心数据库出了问题。

这是我的database.yml文件夹:

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: b6f4e1d86a2a08
  password: 25205573
  host: us-cdbr-iron-east-05.cleardb.net

development:
  <<: *default
  database: DBProj_development

test:
  <<: *default
  database: DBProj_test


production:
  <<: *default
  adapter: mysql2
    encoding: utf8
    pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
    username: b6f4e1d86a2a08
    password: 25205573
    host: us-cdbr-iron-east-05.cleardb.net
    database: @localhost

我完全理解YAML必须始终使用空格缩进。不允许使用标签。我不认为这是问题所在。我还没有找到解决这个问题的唯一来源。

1 个答案:

答案 0 :(得分:0)

那里有2个问题。生产标签中适配器下方的缩进级别错误。并且数据库标签的值不能以@开头,因此您必须将其放在引号之间:

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: b6f4e1d86a2a08
  password: 25205573
  host: us-cdbr-iron-east-05.cleardb.net

development:
  <<: *default
  database: DBProj_development

test:
  <<: *default
  database: DBProj_test


production:
  <<: *default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: b6f4e1d86a2a08
  password: 25205573
  host: us-cdbr-iron-east-05.cleardb.net
  database: "@localhost"

这将解决您的解析问题。