Calo, I think this is the perfect solution for the problem.
-- Ferdinand On Aug 15, 8:38 pm, Caio Chassot <[EMAIL PROTECTED]> wrote: > Hi all, > > Here's a funny situation: > > MySQL 5 does not support default values for columns of type text (and > binary). > > MySQL 5 will throw an error if you try to insert a null value into a > column that is NOT NULL. > > Rails knows that MySQL wrongly reports defaults as '' for NOT NULL > columns with no default specified. Rails also knows which column > types don't allow default values (text, binary). > > So when rails is dealing with a TEXT NOT NULL column, it'll know it > doesn't support a default value, and it'll understand the reported > default value of '' is fake. It'll assume no default. > > So here's the issue: when initializing a new record, rails will set > the attribute to nil. Then, when saving it, MySQL will throw because > you tried inserting NULL into a NOT NULL column. > > My suggestion is simple: > > In the specific case that a column disallows default and is NOT NULL, > report the default as MySQL's implicit default, ''. The attribute > should be initialized to it, and schema dumper should dump the column > with said default value. > > The reasoning is that effectively, '' IS the default value for a TEXT > NOT NULL column. > > Makes sense? --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
