Many thanks Fred :) I think this solution works fine for now.
On Dec 26, 4:57 pm, Frederick Cheung <frederick.che...@gmail.com> wrote: > On 26 Dec 2008, at 21:07, Gourav Tiwari wrote: > > > > > Hi Fred > > > Awesome! you are right, class_caching was turned on. I turned it off > > and it worked! > > But, I would like to pre-load the the models and controllers when the > > framework is loaded, so is there any other option to have caching > > enabled and I can make it work? > > There's not a really good solution to this. One way is to have a > special environment just for running migrations (that obviously uses > the same database as normal) that has cache classes set to false. > > Fred > > > > > On Dec 26, 2:50 pm, Frederick Cheung <frederick.che...@gmail.com> > > wrote: > >> On 26 Dec 2008, at 18:29, Gourav Tiwari wrote: > > >>> I am wondering in my application for past few days, why the rake > >>> db:migrate is behaving differently for different environments. Any > >>> clue is appreciated > > >>> Application name : project > >>> Database name : project_my_own > >>> Environment name : my_own > > >>> If I use simply: > >>> rake db:migrate > > >>> It works, but say I have a separate environment called "my_own" > >>> and if > >>> I run: > >>> rake db:migrate RAILS_ENV=my_own > > >> That environment has class_caching turned on which means all models/ > >> controllers are preloaded when the framework is loaded. If when the > >> model is loaded it tries to inspect its table (as the > >> acts_as_versioned plugins seems to make it do) and that table doesn't > >> exist yet then bad things will happen. > > >> Fred > > >>> It blows up and gives several line of stack trace: > >>> C:\project>rake db:migrate RAILS_ENV=my_own --trace > >>> (in C:/project) > >>> ** Invoke db:migrate (first_time) > >>> ** Invoke environment (first_time) > >>> ** Execute environment > >>> rake aborted! > >>> Mysql::Error: Table 'project_my_own.contents' doesn't exist: SHOW > >>> FIELDS FROM `contents` > >>> C:/project/vendor/rails/activerecord/lib/active_record/ > >>> connection_adapters/abstract_adapter.rb:189:in `log' > >>> C:/project/vendor/rails/activerecord/lib/active_record/ > >>> connection_adapters/mysql_adapter.rb:309:in > >>> `execute_without_reconnect' > >>> C:/project/vendor/plugins/manage/initializers/ > >>> mysql_adapter_extension.rb:7:in `execute' > >>> C:/project/vendor/rails/activerecord/lib/active_record/ > >>> connection_adapters/mysql_adapter.rb:440:in `columns' > >>> C:/project/vendor/rails/activerecord/lib/active_record/base.rb: > >>> 1220:in > >>> `columns' > >>> C:/project/vendor/rails/activerecord/lib/active_record/base.rb: > >>> 1239:in > >>> `content_columns' > >>> C:/project/vendor/plugins/acts_as_versioned/lib/ > >>> acts_as_versioned.rb: > >>> 409:in `create_versioned_table' > >>> C:/project/vendor/plugins/acts_as_versioned/lib/ > >>> acts_as_versioned.rb: > >>> 261:in `acts_as_versioned' > >>> C:/project/app/models/content.rb:16 > >>> C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in > >>> `gem_original_require' > >>> C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in > >>> `require' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:148:in `require' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:507:in `new_constants_in' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:148:in `require' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:254:in `require_or_load' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:413:in `load_missing_constant' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:77:in `const_missing' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:89:in `const_missing' > >>> C:/project/app/models/comment.rb:14 > >>> C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in > >>> `gem_original_require' > >>> C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in > >>> `require' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:148:in `require' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:507:in `new_constants_in' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:148:in `require' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:254:in `require_or_load' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:213:in `depend_on' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:133:in `require_dependency' > >>> C:/project/config/../vendor/rails/railties/lib/initializer.rb:364:in > >>> `load_application_classes' > >>> C:/project/config/../vendor/rails/railties/lib/initializer.rb:363:in > >>> `each' > >>> C:/project/config/../vendor/rails/railties/lib/initializer.rb:363:in > >>> `load_application_classes' > >>> C:/project/config/../vendor/rails/railties/lib/initializer.rb:361:in > >>> `each' > >>> C:/project/config/../vendor/rails/railties/lib/initializer.rb:361:in > >>> `load_application_classes' > >>> C:/project/config/../vendor/rails/railties/lib/initializer.rb:182:in > >>> `process' > >>> C:/project/config/../vendor/rails/railties/lib/initializer.rb:112:in > >>> `send' > >>> C:/project/config/../vendor/rails/railties/lib/initializer.rb:112:in > >>> `run' > >>> C:/project/config/environment.rb:9 > >>> C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in > >>> `gem_original_require' > >>> C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in > >>> `require' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:148:in `require' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:507:in `new_constants_in' > >>> C:/project/vendor/rails/activesupport/lib/active_support/ > >>> dependencies.rb:148:in `require' > >>> C:/project/vendor/rails/railties/lib/tasks/misc.rake:3 > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:617:in `call' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:617:in > >>> `execute' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:612:in `each' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:612:in > >>> `execute' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:578:in > >>> `invoke_with_call_chain' > >>> C:/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:571:in > >>> `invoke_with_call_chain' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:588:in > >>> `invoke_prerequisites' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:585:in `each' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:585:in > >>> `invoke_prerequisites' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:577:in > >>> `invoke_with_call_chain' > >>> C:/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:571:in > >>> `invoke_with_call_chain' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:564:in > >>> `invoke' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:2019:in > >>> `invoke_task' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1997:in > >>> `top_level' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1997:in `each' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1997:in > >>> `top_level' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:2036:in > >>> `standard_exception_handling' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1991:in > >>> `top_level' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1970:in `run' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:2036:in > >>> `standard_exception_handling' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1967:in `run' > >>> C:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.3/bin/rake:31 > >>> C:/ruby/bin/rake:16:in `load' > >>> C:/ruby/bin/rake:16 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---