this is all well and good, but I still don't get why db:fixtures:load passes in one fixture at a time to Fixtures.create_fixtures when it will work unchanged to pass them all in at once. It actually simplifies the rake task and fixes foreign key issues as long as they aren't circular. I believe it's also transparent.
On Jul 22, 5:58 am, Johan Sørensen <[EMAIL PROTECTED]> wrote: > On Jul 22, 2007, at 5:34 AM, court3nay wrote: > > > You can hack it (and speed up fixture loading somewhat) by monkey > > patching the rails code to wrap all the fixture loading in a > > transaction. This will probably solve your dependency issue > > That's basically what I did. > > > On Jul 21, 2007, at 7:27 PM, dailer <[EMAIL PROTECTED]> wrote: > >> This got me looking deeper into rails and I noticed that > >> db:fixtures:load calls Fixtures.create_fixtures once for each fixture > >> file. > > In a project that had "circular" foreign key constraints (table > A.b_id must refer to B.id, and B.a_id must refer back to A.id), I > monkeypatched the create_fixtures to just add them to the array/hash > of loaded fixtures, and load them all in in one big transaction when > needed (I also used fixture-scenarios). For this postgres install, I > also had to set all constraints to deferrable in the test database > schema, and then do "set constraints all deferred" in the transaction > that loads the fixtures to defer constraint checking until the > transaction is committed. > > I don't think fixtures scales well enough to bigger projects, they're > workable for smaller-ish (in terms of domain) projects, but I've > often seem them fall down on bigger projects, esp. when there's a lot > of (admittedly bad) inter-dependencies between models. > > Right now, the fixture-scenarios plugin is a step in the right > direction, but I wouldn't mid joining in in an effort to replace the > current Fixture system in rails completely, hell, I wouldn't mind it > breaking backwards-incompatibility if thats what it took. > > JS --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
