【问题标题】:Activerecord errror after upgrading from rails 3.0.0 to 3.0.11 - table doesn't exist从 rails 3.0.0 升级到 3.0.11 后出现 Activerecord 错误 - 表不存在
【发布时间】:2012-03-15 22:41:51
【问题描述】:

我从 rails 3.0.0 升级到 3.0.11(由于各种原因还不想升级到 3.1)

我在 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>'

以前工作正常,那么可能是什么问题?

【问题讨论】:

    标签: ruby-on-rails-3 activerecord rails-3-upgrade


    【解决方案1】:

    当我遇到此类问题时,我通常会使用较新的 rails gem 创建一个新项目。这样,我可以查看生成的 Gemfile 并将其与我拥有的旧文件进行比较,然后进行相应的更新。

    另外,请务必在更改 Gemfile 中的任何内容后运行 bundle install。

    如果您忘记了,这通常是您遇到问题的原因。

    我希望这可以帮助您解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-01
      • 2021-10-13
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      相关资源
      最近更新 更多