2012-03-15 54 views
1

我從rails 3.0.0升級到3.0.11(由於各種原因,不想移動到3.1)從rails 3.0.0升級到3.0.11之後的Activerecord錯誤 - 表不存在

我改變了我的Gemfile如下:

-gem 'rails', '3.0.0' 
-gem 'mysql2', "0.2.6" 
+gem 'rails', '3.0.11' 
+gem 'mysql2', "~>0.2.7" 

發射了控制檯和嘗試:

PopularMedia.where(:media_type => 1).all 

,並得到這個:

ActiveRecord::StatementInvalid: Mysql2::Error: Table 'matcha_development.popular_media' doesn't exist: SELECT `popular_media`.* FROM `popular_media` WHERE `popular_media`.`id` = 1 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.2.18/lib/active_record/connection_adapters/mysql2_adapter.rb:265:in `query' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.2.18/lib/active_record/connection_adapters/mysql2_adapter.rb:265:in `block in execute' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.11/lib/active_record/connection_adapters/abstract_adapter.rb:202:in `block in log' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.0.11/lib/active_support/notifications/instrumenter.rb:21:in `instrument' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.11/lib/active_record/connection_adapters/abstract_adapter.rb:200:in `log' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.2.18/lib/active_record/connection_adapters/mysql2_adapter.rb:265:in `execute' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.2.18/lib/active_record/connection_adapters/mysql2_adapter.rb:586:in `select' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.11/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.11/lib/active_record/connection_adapters/abstract/query_cache.rb:56:in `select_all' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.11/lib/active_record/base.rb:473:in `find_by_sql' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.11/lib/active_record/relation.rb:64:in `to_a' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.11/lib/active_record/relation/finder_methods.rb:143:in `all' 
from (irb):2 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands/console.rb:44:in `start' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands/console.rb:8:in `start' 
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands.rb:23:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

以前工作得很好,那麼可能是什麼問題呢?

回答

0

當我遇到這樣的問題時,我通常會做的是使用更新的rails gem製作一個新項目。通過這種方式,我可以查看生成的Gemfile並將其與舊的Gemfile進行比較,然後相應地更新它。

此外,請確保在更改Gemfile中的任何內容後運行bundle install。

如果您忘記了,通常可能是您遇到問題的原因。

我希望能幫助你解決你的問題。

相關問題