database.yml&引用不起作用

问题描述

| 我们刚刚将虚拟机升级到我认为是相同的ruby配置(通过RVM ... Ruby 1.9.2,Rails 3.0.7,DataMapper 1.1.0)。最大的不同是我们从MySQL 5.0升级到5.1。 由于某些原因,在旧VM上运行的完全相同的code / database.yml现在在尝试连接到数据库时在新VM上失败。 问题在于此YAML:
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\",\"production\" => {
    \"adapter\"=>\"mysql\",\"host\"=>\"localhost\"
  }
代替:
  \"mysql_defaults\" => {
    \"adapter\"=>\"mysql\",\"host\"=>\"localhost\",\"database\"=>\"devdb\"
  },\"host\"=>\"master.db.site.com\",\"database\"=>\"productiondb\"
  }
有人经历过吗? 根据Gemfile.lock(出于完整性考虑,我删除了它,然后再次运行捆绑安装),所有已安装的依赖项都是相同的(即,Gemfile.lock在新旧设置之间没有区别)。 database.yml也没有。     

解决方法

Psych是新的YAML解析器,它可能更好,但不能合并哈希键。 这应该有帮助 http://pivotallabs.com/users/mkocher/blog/articles/1692-yaml-psych-and-ruby-1-9-2-p180-here-there-be-dragons     ,既然您已完成升级,则可能是数据库权限混乱了。尝试查看您是否具有必要的权限,即代码所在的计算机具有在数据库计算机上进行连接和修改的特权。看着你的database.yml应该是\“
GRANT ALL PRIVILEGES ON productionbd.* to \'user\'@\'<app-server-ip>\' identified by \'pass\';
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...