On 9 Dec 2008, at 21:33, Jeffrey L. Taylor wrote:
> > Quoting Jeffrey L. Taylor <[EMAIL PROTECTED]>: >> >> I am running into problems testing with Xapian and Sphinx, both off- >> line index >> updating search engines (i.e., adding/changing an indexed record >> puts the re >> uest into a queue with the actual work done in a cronjob). To test >> I can load >> the fixtures, build the index, and run tests successfully that >> don't add new >> records or modify the fixtures. But I can figure out how to get >> the indexes >> updated between the DB modify and the search. For Xapian I am >> doing the >> following from within the test program: >> >> `rake xapian:update_index flush=true RAILS_ENV=test` >> >> The new record doesn't make it into the index, though it does get >> added to the >> acts_as_xapian table. >> > > I think I've found the answer. The key thing is that the test > script is > adding a record at run time. ActiveRecord does not commit these > records. > This is so it can rollback the test database to just the fixtures > after each > test. The record ID is being passed to Xapian thru acts_as_xapian > database, > but there is no such record actually in the database, just in the > ActiveRecord > cache. This problem exists for all search engines that read the > database > directly instead of going thru Rails. Although the record isn't committed, other connections to the database can see it if they ask. With Sphinx I get it to execute "SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED" and it can then see the non committed changes from my tests. Fred > > > For the record, > Jeffrey > > > --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---