Rake db错误:第1行的ERROR 1102(42000):数据库名称不正确[nil]

时间:2011-03-21 21:52:24

标签: ruby-on-rails database-connection datamapper

我收到以下错误:

  

$ rake db:drop
  (在D:/ Repository / MyApp中)
  〜[datamapper]设置“开发”环境:
  〜[datamapper]设置:默认存储库:''在mysql上   第1行的错误1102(42000):数据库名称错误''

以下是我的database.yml文件:

defaults: &defaults
  adapter: mysql
  encoding: utf8
  reconnect: false
  pool: 5
  username: dbuser
  password: ******

development:
  database: myapp_development
  host: 127.0.0.1
  <<: *defaults

test:
  database: myapp_test
  host: 127.0.0.1:3306
  <<: *defaults

production:
  database: myapp_production
  host: mysql.myapp.com
  <<: *defaults

我在Windows平台上运行mysql 5.5服务器,使用Ruby 1.9.2和Rails 3,并且服务器配置了正确的数据库,用户和密码。我正在使用datamapper。这适用于我们的实际网站,但不适用于我的本地网站。运行'rails dbconsole'会产生“ruby192安装路径/ dbconsole.rb:75:'exec':无法将nil转换为String(TypeError)。

之前有没有人遇到这个问题?有关如何诊断或纠正它的任何建议?或者也许是一个简单的诊断命令,可以从终端,rails或rake控制台运行以暴露一些信息?也许可以验证它是否连接到数据库,或者如果不是问题是什么?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的错误,并通过另一篇文章发现它实际上是由YAML解析错误引起的。 这让人记住,在使用Ruby 1.9.2设置Mongoid时,我必须在config / environment.rb中包含以下内容

#Add this to config/environment.rb at the top
require 'yaml'
YAML::ENGINE.yamler= 'syck'

这就是诀窍并解决了这个问题。 希望它有所帮助。