2012-03-14 77 views
0

我试图使用mysql作为生产环境中的数据库,因为我的Agile 4rth版本的第234页上的第234页上已经提到。据我所知,这个问题看起来像danymmc在一月问(http://stackoverflow.com/questions/8809099/rails-app-rake-dbmigrate-aborted-syntax-error)解决方案不适合对我来说。rake中止!语法错误第1行,第9列:`t适配器:sqlite3'

我的工作:

Ruby 1.9.2 
Rails 3.1.0 
rubygems 1.8.18 

我的database.yml是:

development: 
    adapter: sqlite3 
    database: development 
    pool: 5 
    timeout: 5000 
production: 
    adapter: mysql 
    database: depot_production 
    encoding: utf8 
    host: localhost 
    password: password 
    pool: 5 
    reconnect: false 
    socket: /var/run/mysqld/mysqld.sock 
    username: username 
test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

当我跟踪耙分贝:设置RAILS_ENV = “生产”,我得到:

[email protected]:/var/www/repos/depot/depot_old# rake db:setup RAILS_ENV="production" --trace 
** Invoke db:setup (first_time) 
** 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! 
syntax error on line 1, col 9: ` adapter: sqlite3' 
/usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/syck.rb:135:in `load' 
/usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/syck.rb:135:in `load' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.1.0/lib/rails/application/configuration.rb:100:in `database_configuration' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/activerecord-3.1.0/lib/active_record/railties/databases.rake:6:in `block (2 levels) in <top (required)>' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:176:in `block in invoke_prerequisites' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `each' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `invoke_prerequisites' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:157:in `block in invoke_with_call_chain' 
/usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:176:in `block in invoke_prerequisites' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `each' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `invoke_prerequisites' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:157:in `block in invoke_with_call_chain' 
/usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run' 
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>' 
/usr/local/rvm/gems/ruby-1.9.2-p318/bin/rake:19:in `load' 
/usr/local/rvm/gems/ruby-1.9.2-p318/bin/rake:19:in `<main>' 
Tasks: TOP => db:setup => db:create => db:load_config 

我试图将此代码包含到config/boot.rb文件中,但它不工作:

require 'yaml' 
YAML::ENGINE.yamler = 'syck' 

我试着用

gem update -system 

更新我的宝石,它并没有太多的工作。

最有趣的是,我的开发机器和生产的机器是相同的,当然,在开发(本地主机:3000与轨道服务器)完美的作品。

任何帮助将不胜感激。

+0

如果没有问题,请删除问题。相反,接受一些答案。 – shingara 2012-03-14 10:33:01

回答

0

问题可能是您的测试环境嵌套太深,导致无效的YML。请确保它缩进2个空格,而不是3

+0

是啊!就是这样,并改变空格标签。谢啦。 – Solarin 2012-03-14 10:04:00

1

与此database.yml尝试:

development: 
    adapter: sqlite3 
    database: development 
    pool: 5 
    timeout: 5000 
production: 
    adapter: mysql 
    database: depot_production 
    encoding: utf8 
    host: localhost 
    password: password 
    pool: 5 
    reconnect: false 
    socket: /var/run/mysqld/mysqld.sock 
    username: username 
test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

心灵的空间,是显著

+0

嗨Fuzzyalej!感谢您的快速回答。事实上,我刚刚在1分钟前解决了它,这只是一个更改标识空间标签的问题...抱歉打扰你:S,非常感谢。 – Solarin 2012-03-14 10:01:09

0

您可以使用主机名:不是主机数据库.yml文件。

+0

这有什么用? – dakab 2016-02-04 10:33:37

相关问题