Wouldn't it be sufficient for thinking sphinx to do the db stuff only when running the indexing tasks?
On 8 Nov., 12:19, Pat Allan <[email protected]> wrote: > It's probably because the Observers are loaded, which means the models are > loaded, which means the index definitions are loaded - and they check the db > settings at the time of definition. > > -- > Pat > > On 08/11/2011, at 5:06 PM, nico wrote: > > > > > > > > > Yep, that works... ;-) > > > On 8 Nov., 11:06, nico <[email protected]> wrote: > >> Ah, okay, thanks Pat, that sounds like a workaround! Will try it out. > > >> The weird thing is that the db requirements are only there when using > >> the observers. I don't understand why... > > >> Nico > > >> On 7 Nov., 19:16, Pat Allan <[email protected]> wrote: > > >>> Sorry Nico, nothing yet… it's hard to avoid the db requirements. > > >>> Maybe you can only set observers if ENV['RAILS_GROUPS'] isn't set to > >>> assets? > > >>> -- > >>> Pat > > >>> On 07/11/2011, at 4:25 PM, nico wrote: > > >>>> Anyone any ideas here? > > >>>> On 5 Nov., 16:28, nico <[email protected]> wrote: > >>>>> Sure: > > >>>>> config.active_record.observers = [:company_cache_observer, > >>>>> :layout_cache_observer, > >>>>> :user_observer, > >>>>> :userpoints_observer, > >>>>> :ownership_observer] > >>>>> On 5 Nov., 16:13, Pat Allan <[email protected]> wrote: > > >>>>>> Hi Nico > > >>>>>> Can you show us how you're loading the observers in your > >>>>>> application.rb file? > > >>>>>> -- > >>>>>> Pat > > >>>>>> On 05/11/2011, at 4:02 PM, nico wrote: > > >>>>>>> Strangely, thinking sphinx's model loading in define_index triggers a > >>>>>>> database connection to be established when the model with define_index > >>>>>>> is observed by an observer. > > >>>>>>> This causes rake tasks like assets:precompile to depend on a db > >>>>>>> connection which should normally not be required. This dependency > >>>>>>> makes asset compilation on Heroku fail. If I remove the observer > >>>>>>> loading in application.rb, the database dependency does't exist and > >>>>>>> rake tasks work fine without a db configured. > > >>>>>>> It's quite hard to debug this, help is greatly appreciated! Here is > >>>>>>> the stack trace for rake assets:precompile when rails is configured > >>>>>>> with a non existing database and using observers: > > >>>>>>> bundle exec rake assets:precompile RAILS_ENV=staging --trace > >>>>>>> ** Invoke assets:precompile (first_time) > >>>>>>> ** Execute assets:precompile > >>>>>>> /Users/nico/.rvm/rubies/ruby-1.9.2-p290/bin/ruby > >>>>>>> /Users/nico/.rvm/gems/ > >>>>>>> ruby-1.9.2-p290/bin/rake assets:precompile:all RAILS_ENV=staging > >>>>>>> RAILS_GROUPS=assets --trace > >>>>>>> ** Invoke assets:precompile:all (first_time) > >>>>>>> ** Execute assets:precompile:all > >>>>>>> ** Invoke assets:precompile:primary (first_time) > >>>>>>> ** Invoke assets:environment (first_time) > >>>>>>> ** Execute assets:environment > >>>>>>> ** Invoke environment (first_time) > >>>>>>> ** Execute environment > >>>>>>> rake aborted! > >>>>>>> FATAL: database "non_existing_database" does not exist > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/postgresql_adapter.rb:1032:in > >>>>>>> `initialize' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/postgresql_adapter.rb:1032:in `new' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/postgresql_adapter.rb:1032:in > >>>>>>> `connect' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/postgresql_adapter.rb:301:in > >>>>>>> `initialize' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/postgresql_adapter.rb:28:in `new' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/postgresql_adapter.rb:28:in > >>>>>>> `postgresql_connection' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_pool.rb:304:in > >>>>>>> `new_connection' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_pool.rb:323:in > >>>>>>> `checkout_new_connection' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_pool.rb:265:in > >>>>>>> `block (2 levels) in checkout' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_pool.rb:261:in > >>>>>>> `loop' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_pool.rb:261:in > >>>>>>> `block in checkout' > >>>>>>> /Users/nico/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb: > >>>>>>> 201:in `mon_synchronize' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_pool.rb:260:in > >>>>>>> `checkout' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_pool.rb:162:in > >>>>>>> `connection' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_pool.rb:409:in > >>>>>>> `retrieve_connection' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_specification.rb: > >>>>>>> 107:in `retrieve_connection' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/connection_adapters/abstract/connection_specification.rb: > >>>>>>> 89:in `connection' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/base.rb:1473:in `replace_bind_variables' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/base.rb:1460:in `sanitize_sql_array' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/base.rb:1366:in `sanitize_sql_for_conditions' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/relation/query_methods.rb:259:in `build_where' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/relation/query_methods.rb:124:in `where' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.1/lib/ > >>>>>>> active_record/base.rb:444:in `where' > >>>>>>> /Users/nico/Rails/myapp/app/models/user.rb:194:in `<class:User>' > >>>>>>> /Users/nico/Rails/myapp/app/models/user.rb:100:in `<top (required)>' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:240:in `require' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:240:in `block in require' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:225:in `load_dependency' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:240:in `require' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:348:in `require_or_load' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:489:in `load_missing_constant' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:181:in `block in const_missing' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:179:in `each' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:179:in `const_missing' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/aws-s3-0.6.2/lib/aws/s3/ > >>>>>>> extensions.rb:206:in `const_missing_from_s3_library' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:501:in `load_missing_constant' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:181:in `block in const_missing' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:179:in `each' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:179:in `const_missing' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/aws-s3-0.6.2/lib/aws/s3/ > >>>>>>> extensions.rb:206:in `const_missing_from_s3_library' > >>>>>>> /Users/nico/Rails/myapp/app/models/company.rb:103:in `<class:Company>' > >>>>>>> /Users/nico/Rails/myapp/app/models/company.rb:45:in `<top (required)>' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:240:in `require' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:240:in `block in require' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:225:in `load_dependency' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:240:in `require' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:348:in `require_or_load' > >>>>>>> /Users/nico/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/ > >>>>>>> active_support/dependencies.rb:489:in `load_missing_constant' > > ... > > Erfahren Sie mehr » -- You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
