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
-~----------~----~----~----~------~----~------~--~---

Reply via email to