【问题标题】:rake db:create "unknown could'n parse YAML" sqlite3rake db:创建“未知无法解析 YAML”sqlite3
【发布时间】:2012-01-28 05:57:49
【问题描述】:

您好,我正在尝试向我的 rails 应用程序添加一个数据库。我使用 sqlite3 创建了一个名为 proto_development 的数据库,但是当我使用 rake db:create 命令时,出现以下错误

    ROOT\first_app>rake db:create --trace
    ** Invoke db:create (first_time)
    ** Invoke db:load_config (first_time)
    ** Invoke rails_env (first_time)
    ** Execute rails_env
    ** Execute db:load_config
    rake aborted!
    (<unknown>): couldn't parse YAML at line 9 column 12
    C:/Ruby193/lib/ruby/1.9.1/psych.rb:154:in `parse'
    C:/Ruby193/lib/ruby/1.9.1/psych.rb:154:in `parse_stream'
    C:/Ruby193/lib/ruby/1.9.1/psych.rb:125:in `parse'
    C:/Ruby193/lib/ruby/1.9.1/psych.rb:112:in `load'
    ROOT/first_app/sqlite3-ruby/ruby/1.9.1/gems/railties-3.1.0/lib/rails/application/configuration.rb:
    100:in `database_configuration'
    ROOT/first_app/sqlite3-ruby/ruby/1.9.1/gems/activerecord-3.1.0/lib/active_record/railties/database
    s.rake:6:in `block (2 levels) in <top (required)>'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:205:in `call'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:200:in `each'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
    C:/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:176:in `block in invoke_prerequisites'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:174:in `each'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:174:in `invoke_prerequisites'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:157:in `block in invoke_with_call_chain'
    C:/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
    C:/Ruby193/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `each'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
    C:/Ruby193/lib/ruby/1.9.1/rake/application.rb:63:in `run'
    C:/Ruby193/bin/rake:32:in `<main>'
    Tasks: TOP => db:create => db:load_config

以下是我的 YAML 文件: # SQLite 版本 3.x # 宝石安装 sqlite3 # 确保在 Gemfile 中定义了 SQLite 3 gem # gem 'sqlite3'

    development:

      adapter: sqlite3

      database: db/proto_development.sqlite3

      pool: 5

      timeout: 5000
      username: root
      password: "p"




    # 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:

      adapter: sqlite3

      database: db/test.sqlite3

      pool: 5

      timeout: 5000
      username: root
      password: "p" 




    production:

      adapter: sqlite3

      database: db/production.sqlite3

      pool: 5
      timeout: 5000
      username: root
      password: "p"

您能提供的任何帮助将不胜感激。

谢谢

【问题讨论】:

标签: ruby-on-rails parsing sqlite rake yaml


【解决方案1】:

确保您在 database.yml 文件中的密码是一个字符串,而不是所有数字。例如,321 会拉出错误,b321 会起作用。这可能有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2011-08-16
    • 2019-06-21
    • 2011-08-30
    • 1970-01-01
    • 2011-06-26
    相关资源
    最近更新 更多