Tarmo Tänav wrote:
> On L, 2007-07-28 at 13:04 +0700, Hendy Irawan wrote:
>   
>> Tarmo Tänav wrote:
>>     
>>> I'm not actually proposing a mixed system, I'd just like a way to
>>> load the fixtures like they are currently loaded but do it once
>>> and only once for all tests.
>>>
>>>   
>>>       
>> I seriously agree with Tarmo.
>>
>> Especially painful if trying to use Rails test fixtures and DB integrity
>> at the same time. In the end I usually let Rails "win", and let Rails
>> tests & validations do its jobs rather than trying to RI everything into DB.
>>
>> It'd be great to be able to specify loading order for the fixtures
>> globally :)
>>     
>
> Load order by itself is not always enough, there can be circular
> dependencies between tables and even self-referential dependencies
> in one table.
>
> In those cases the only way to mass-load the data (other than
> manually inserting all the rows in the correct order) is to
> disable foreign keys completely until all the data has been
> loaded.
>
> This (last I checked) can be done with one simple command in mysql
> and with a bit of hacking in postgresql (when creating foreign
> key constraints mark them as deferrable and when loading the
> fixtures do it inside a transaction and "SET CONSTRAINTS ALL DEFERRED;".
>
> So indeed foreign keys can be a pain to use with Rails but the problem
> can be solved without having to maintain a correct loading order
> for all the fixtures.
>
>
>   
Thank you so much Tarmo.

Yep I'm using PostgreSQL mostly but I'm not aware of that specific 
PostgreSQL feature (or trick)

Thank you very much, it surely helps me a lot. :-)


-- 
Hendy Irawan
www.hendyirawan.com


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" 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/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to