Hi, I am using Rails Fixtures to load some test data to my database and accidentally I introduced a foreign key out of range. To my surprise, the database accepted it despite having referential integrity constraints (that work). I tried with PostgreSQL and with MySQL InnoDB and both allowed. Example: Having in the database "Flavours" whith a numeric primary key (id), 5 entries (1 to 5). I can introduce bad data doing: Icecream_1: name: my ice cream flavour_id: 6 How is it possible that the fixtures loading go around my database constraints? Thank you. -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hi Jaime, On 13 Aug 2010, at 11:49, Jaime Ferreira wrote:> How is it possible that the fixtures loading go around my database > constraints?For PostgreSQL AFAIK, the triggers which enforce RI are disabled prior to the loading of the fixtures. I only discovered this because I ran into a problem recently where my tests were failing because the db user for the tests did not have permissions to disable the triggers. Regards, Tony Byrne. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Jaime Ferreira
2010-Aug-13 13:19 UTC
Re: Databases allow bad foreign keys from Rails Fixtures
Thank you Tony. Mistery solved, looks like there is nothing to worry about, I only have to be careful loading the test data. -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser
2010-Aug-13 14:17 UTC
Re: Databases allow bad foreign keys from Rails Fixtures
Tony Byrne wrote:> Hi Jaime, > > On 13 Aug 2010, at 11:49, Jaime Ferreira wrote: > >> How is it possible that the fixtures loading go around my database >> constraints? > > For PostgreSQL AFAIK, the triggers which enforce RI are disabled prior > to the loading of the fixtures. I only discovered this because I ran > into a problem recently where my tests were failing because the db user > for the tests did not have permissions to disable the triggers.Oh, right...I remember seeing that (I think it''s a performance hack?). Yet another reason not to use fixtures, arguably the most broken and horrific feature of Rails. Jaime, I would *highly* recommend abandoning fixtures and using factories for your testing instead (I like Machinist for this). Your tests will be easier to write and more conceptually correct.> > Regards, > > Tony Byrne.Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Jaime Ferreira
2010-Aug-13 14:56 UTC
Re: Databases allow bad foreign keys from Rails Fixtures
Thanks Marnen. Rails has a lot to improve, especially in the relational database area but I think it''s in the right way. I will check out Machinist as you recomend. -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.