ruby-on-rails – 针对ActiveRecord :: Base的未定义方法`migrat
发布时间:2020-12-17 03:31:46 所属栏目:百科 来源:网络整理
导读:当我运行bundle exec rake db:migrate –trace时出现以下错误. C:Sitesrails_projectssample_appbundle exec rake db:migrate --trace** Invoke db:migrate (first_time)** Invoke environment (first_time)** Execute environmentrake aborted!undefine
当我运行bundle exec rake db:migrate –trace时出现以下错误.
C:Sitesrails_projectssample_app>bundle exec rake db:migrate --trace ** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment rake aborted! undefined method `migration_error=' for ActiveRecord::Base:Class C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-3.2.14/lib/act ive_record/dynamic_matchers.rb:55:in `method_missing' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-3.2.14/lib/act ive_record/railtie.rb:72:in `block (3 levels) in <class:Railtie>' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-3.2.14/lib/act ive_record/railtie.rb:71:in `each' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-3.2.14/lib/act ive_record/railtie.rb:71:in `block (2 levels) in <class:Railtie>' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/lazy_load_hooks.rb:36:in `instance_eval' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/lazy_load_hooks.rb:36:in `execute_hook' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/lazy_load_hooks.rb:26:in `block in on_load' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/lazy_load_hooks.rb:25:in `each' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/lazy_load_hooks.rb:25:in `on_load' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-3.2.14/lib/act ive_record/railtie.rb:67:in `block in <class:Railtie>' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/i nitializable.rb:30:in `instance_exec' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/i nitializable.rb:30:in `run' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/i nitializable.rb:55:in `block in run_initializers' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/i nitializable.rb:54:in `each' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/i nitializable.rb:54:in `run_initializers' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/a pplication.rb:136:in `initialize!' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/r ailtie/configurable.rb:30:in `method_missing' C:/Sites/rails_projects/sample_app/config/environment.rb:5:in `<top (required)>' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/dependencies.rb:251:in `require' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/dependencies.rb:251:in `block in require' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/dependencies.rb:236:in `load_dependency' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.14/lib/ac tive_support/dependencies.rb:251:in `require' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/a pplication.rb:103:in `require_environment!' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.14/lib/rails/a pplication.rb:305:in `block (2 levels) in initialize_tasks' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:236:in `call' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:236:in `block in execute' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:231:in `each' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:231:in `execute' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:175:in `block in invoke_with_call_chain' C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:168:in `invoke_with_call_chain' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:197:in `block in invoke_prerequisites' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:195:in `each' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:195:in `invoke_prerequisites' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:174:in `block in invoke_with_call_chain' C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:168:in `invoke_with_call_chain' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/task.r b:161:in `invoke' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:149:in `invoke_task' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:106:in `block (2 levels) in top_level' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:106:in `each' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:106:in `block in top_level' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:115:in `run_with_threads' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:100:in `top_level' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:78:in `block in run' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:165:in `standard_exception_handling' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/lib/rake/applic ation.rb:75:in `run' C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.0/bin/rake:33:in `<top (required)>' C:/RailsInstaller/Ruby1.9.3/bin/rake:23:in `load' C:/RailsInstaller/Ruby1.9.3/bin/rake:23:in `<main>' Tasks: TOP => db:migrate => environment 的Gemfile source 'https://rubygems.org' gem 'rails','3.2.14' gem 'bootstrap-sass','2.1' gem 'bcrypt-ruby','3.0.1' gem 'faker','1.0.1' gem 'will_paginate','3.0.3' gem 'bootstrap-will_paginate','0.0.6' gem 'jquery-rails','2.0.2' group :development,:test do gem 'sqlite3','1.3.5' gem 'rspec-rails','2.11.0' gem 'guard-rspec','1.2.1' gem 'guard-spork','1.2.0' gem 'childprocess','0.3.6' gem 'spork','0.9.2' end # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails','3.2.5' gem 'coffee-rails','3.2.2' gem 'uglifier','1.2.3' end group :test do gem 'capybara','1.1.2' gem 'factory_girl_rails','4.1.0' gem 'cucumber-rails','1.2.1',:require => false gem 'database_cleaner','0.7.0' # gem 'launchy','2.1.0' # gem 'rb-fsevent','0.9.1',:require => false # gem 'growl','1.0.3' end group :production do gem 'pg','0.12.2' end database.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: &test adapter: sqlite3 database: db/test.sqlite3 pool: 5 timeout: 5000 production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000 cucumber: <<: *test 我已经检查了类似的帖子,这些解决方案都没有为我工作,所以感谢您提供的任何帮助. 解决方法
我在设计多引擎应用程序时多次遇到此错误,它总是发生在引擎中.但是,就我而言,它似乎来自粗心的错误.对于我的引擎,我没有在database.yml中指定任何数据库环境,而不是测试数据库:
test: adapter: "mysql2" database: "test_engine_db" username: 'root' password: '' 所以做一个rake db:migrate让我得到了这个无用的错误: undefined method `migration_error=' for ActiveRecord::Base:Class /Users/me/.rvm/gems/ruby-1.9.3-head@mygems/gems/activerecord-3.2.14/lib/active_record/dynamic_matchers.rb:55:in `method_missing' 问题是我需要指定测试环境: rake db:migrate RAILS_ENV=test 这是一个“没有duh”……但错误信息是无用的.我尝试了一切,包括擦除我的gemset并手动指定一个版本的Rails,但什么也没做.所有问题都在于我缺少RAILS_ENV标志. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |