rake db: создать "неизвестный не могу разобрать YAML" sqlite3 - PullRequest
1 голос
/ 27 декабря 2011

Привет, я пытаюсь добавить БД в мое приложение 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 # gem install sqlite3 # Убедитесь, что в вашем Gemfile определен гем SQLite 3 # 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"

Любая помощь, которую вы можете предложить, была бы очень признательна.

Спасибо

1 Ответ

2 голосов
/ 22 апреля 2012

Убедитесь, что ваш пароль в файле database.yml является строкой, как не во всех числах.Например, 321 будет выдавать ошибку, b321 будет работать.Это может сработать.

...