Ruby on rails database.yml&;参考资料不起作用
我们刚刚将虚拟机升级到我认为完全相同的ruby配置(通过RVM…ruby 1.9.2、Rails 3.0.7、DataMapper 1.1.0)。最大的区别是我们从MySQL 5.0升级到了5.1 出于某种原因,在旧虚拟机上使用的代码/database.yml现在在新虚拟机上尝试连接到数据库时失败 问题在于,该YAML:Ruby on rails database.yml&;参考资料不起作用,ruby-on-rails,ruby,yaml,datamapper,Ruby On Rails,Ruby,Yaml,Datamapper,我们刚刚将虚拟机升级到我认为完全相同的ruby配置(通过RVM…ruby 1.9.2、Rails 3.0.7、DataMapper 1.1.0)。最大的区别是我们从MySQL 5.0升级到了5.1 出于某种原因,在旧虚拟机上使用的代码/database.yml现在在新虚拟机上尝试连接到数据库时失败 问题在于,该YAML: mysql_defaults: &mysql_defaults adapter: mysql encoding: UTF-8 username: user
mysql_defaults: &mysql_defaults
adapter: mysql
encoding: UTF-8
username: user
password: pass
host: localhost
development:
<<: *mysql_defaults
database: devdb
production:
<<: *mysql_defaults
database: productiondb
host: master.db.site.com
而不是:
"mysql_defaults" => {
"adapter"=>"mysql",
"encoding"=>"UTF-8",
"username"=>"user",
"password"=>"pass",
"host"=>"localhost"
},
"development" => {
"adapter"=>"mysql",
"encoding"=>"UTF-8",
"username"=>"user",
"password"=>"pass",
"host"=>"localhost",
"database"=>"devdb"
},
"production" => {
"adapter"=>"mysql",
"encoding"=>"UTF-8",
"username"=>"user",
"password"=>"pass",
"host"=>"master.db.site.com",
"database"=>"productiondb"
}
以前有人经历过吗
根据Gemfile.lock(我删除了它并再次运行了bundle安装,只是出于理智的考虑),所有安装的依赖项都是相同的(即Gemfile.lock在新旧安装之间没有区别)。database.yml.Psych也是新的YAML解析器,它可能更好,但不能合并哈希键 这应该会有所帮助
由于您进行了升级,可能是您的数据库权限出了问题。尝试查看您是否具有必要的权限,即代码所在的计算机具有连接和修改数据库计算机的权限。看看你的数据库。yml应该是这样的“
在irb中打开此yml文件时(在同一台机器上),将productionbd.*上的所有权限授予由“pass”标识的“user”@;
然后用YAML.load
解析它,解析很好。不知道Rails/DataMapper中发生了什么。你得到了什么异常?哇,我已经在我的application.rb中放置了YAML::ENGINE.yamler='syck'
,一切都很好。他们到底在想什么,如果某个东西天生就坏了,他们会把它设为默认值?看起来像他们实际上完全删除了syck,但这两个版本听起来完全不兼容:-\n这类东西可能会让人很沮丧。啊!:)多亏了这一点,我刚才遇到了同样的问题,使用MongoMapper与Rails 3.2.6和ruby 1.9.2-p180配合使用。这在ruby 1.9.2-p290中得到了修复。如果你停留在较旧的补丁级别,你可以使用t他是精神宝石,看最后一期。
"mysql_defaults" => {
"adapter"=>"mysql",
"encoding"=>"UTF-8",
"username"=>"user",
"password"=>"pass",
"host"=>"localhost"
},
"development" => {
"adapter"=>"mysql",
"encoding"=>"UTF-8",
"username"=>"user",
"password"=>"pass",
"host"=>"localhost",
"database"=>"devdb"
},
"production" => {
"adapter"=>"mysql",
"encoding"=>"UTF-8",
"username"=>"user",
"password"=>"pass",
"host"=>"master.db.site.com",
"database"=>"productiondb"
}