Mysql 加载databsae.yml时出错
我正在尝试设置mysql测试数据库,但出现了一个奇怪的错误,这些是我的配置 宝石档案Mysql 加载databsae.yml时出错,mysql,ruby-on-rails-3,yaml,Mysql,Ruby On Rails 3,Yaml,我正在尝试设置mysql测试数据库,但出现了一个奇怪的错误,这些是我的配置 宝石档案 source 'https://rubygems.org' gem 'rails', '3.2.9' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'sqlite3' gem "mysql2" # Gems used only for assets and not
source 'https://rubygems.org'
gem 'rails', '3.2.9'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem "mysql2"
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
group :test, :development do
gem "rspec-rails", "~> 2.0"
gem 'database_cleaner'
gem 'capybara'
gem "factory_girl_rails", ">= 4.1.0"
gem 'cucumber-rails', :require => false
gem 'mocha'
gem "shoulda-matchers"
gem "spork"
gem 'guard-rspec'
gem "guard-spork"
gem 'rb-inotify', '~> 0.8.8'
gem 'cucumber-rails', :require => false
gem 'cucumber-rails-training-wheels' #Still running on 'L' board
end
gem 'jquery-rails'
gem "twitter-bootstrap-rails"
gem "therubyracer", '0.10.2'
gem "less-rails"
gem 'devise'
gem 'omniauth-google-oauth2'
gem 'cancan'
# To use debugger
gem 'debugger'
gem 'ruby-prof'
mydatabase.yml文件
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
# 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: mysql2
username: root
password: root
host: localhost
database: bamboo_test
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
cucumber:
<<: *test
#SQLite版本3.x
#gem安装sqlite3
#
#确保在gem文件中定义了SQLite 3 gem
#gem'sqlite3'
发展:
适配器:sqlite3
数据库:db/development.sqlite3
游泳池:5
超时:5000
#警告:定义为“测试”的数据库将被删除并删除
#运行“rake”时从开发数据库重新生成。
#请勿将此数据库设置为与开发或生产相同的数据库。
测试:
适配器:mysql2
用户名:root
密码:root
主机:本地主机
数据库:竹纤维u试验
制作:
适配器:sqlite3
数据库:db/production.sqlite3
游泳池:5
超时:5000
黄瓜:
db:create:all=>db:load\u config
(通过使用--trace运行任务查看完整跟踪)
[sameera@sameera竹]$rake db:create:all-trace
**调用数据库:创建:全部(第一次)
**调用数据库:加载配置(第一次)
**执行db:load\u config
雷克流产了!
无法将nil转换为哈希
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:196:in'merge!'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:196:in“访问中的块心理节点映射”
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:190:in'each'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:190:在“每一片”中
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:190:在“访问心理节点映射”中
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/visitor.rb:7:in'accept'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:16:in'accept'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:205:“访问中的块心理节点映射”
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:190:in'each'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:190:在“每一片”中
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:190:在“访问心理节点映射”中
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/visitor.rb:7:in'accept'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:16:in'accept'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/nodes/node.rb:25:in'to_ruby'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:107:in'load'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.9/lib/rails/application/configuration.rb:115:在“数据库配置”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.9/lib/active\u record/railties/databases.rake:25:in `块(2层)in'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:228:in'call'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:228:in`block in execute'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:223:in'each'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:223:in'execute'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:166:in`block in invoke_with_call_chain'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in'mon_synchronize'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:159:在“调用”和“调用链”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:187:在“调用中的块”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:185:in'each'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:185:在“调用”前提条件中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:165:in`block in invoke_with_call_chain'
/home/sameera/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in'mon_synchronize'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:159:在“调用”和“调用链”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/task.rb:152:in'invoke'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:143:在“调用任务”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:101:在“顶层中的块(2层)”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:101:in'each'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:101:在“顶层块”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:110:在“使用线程运行”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:95:“顶级”
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:73:in'block in run'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:160:在“标准异常处理”中
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/lib/rake/application.rb:70:in'run'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/gems/rake-10.0.3/bin/rake:33:in`'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/bin/rake:19:in'load'
/home/sameera/.rvm/gems/ruby-1.9.2-p290/bin/rake:19:in`'
任务:TOP=>db:create:all=>db:load\u config
加载
.yml
文件时会出现错误,但我觉得该文件似乎没有问题。任何帮助都将不胜感激。问题在于您在cucumber部分中引用了测试环境别名,而没有实际创建它。尝试将测试环境修改为:
test: &test
adapter: mysql2
username: root
password: root
host: localhost
database: bamboo_test
test: &test
adapter: mysql2
username: root
password: root
host: localhost
database: bamboo_test