Thank you for your quick reply.

On Oct 2, 5:19 am, Tony Mann <[email protected]> wrote:
> Hello,
> I mentioned this problem recently, and was told that there is a ticket for
> it. In the meantime, you can use this monkeypatch:
>
> # Make Yaml type use TEXT
> module DataMapper
>   module Migrations
>     module DataObjectsAdapter
>       module ClassMethods
>         alias _type_map type_map
>         def type_map
>           t = _type_map.dup
>           t[Types::Yaml]  = { :primitive => 'TEXT' }
>           t
>         end
>       end
>     end
>   end
> end
>
> This should be considered a temporary fix, though.
>
> ..tony..
>
> On Thu, Oct 1, 2009 at 12:26 PM, sliu <[email protected]> wrote:
>
> > dm 0.10.1
> > mysql: 5.0.75-0ubuntu10.2-log (Ubuntu)
>
> > given a line in a model:
> > property :vars, Yaml
>
> > call DataMapper.auto_migrate! will cause exception:
>
> > /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-core/
> > migrations.rb:147:in `execute_non_query': Column length too big for
> > column 'vars' (max = 21845); use BLOB or TEXT instead
> > (DataObjects::SQLError)
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/migrations.rb:147:in `create_model_storage'
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/adapters/data_objects_adapter.rb:266:in `with_connection'
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/migrations.rb:144:in `create_model_storage'
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/migrations.rb:1166:in `create_model_storage'
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/migrations.rb:1260:in `auto_migrate_up!'
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/migrations.rb:49:in `send'
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/migrations.rb:49:in `repository_execute'
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/model/descendant_set.rb:33:in `each'
> >         ... 8 levels...
>
> > I looked into dm-types-0.10.1/lib/dm-types/yaml.rb,  found the
> > following code:
>
> > module DataMapper
> >  module Types
> >    class Yaml < DataMapper::Type
> >      primitive String
> >      length    65535
> >      lazy      true
>
> > change `primitive String` to `primitive Text`, raise the following
> > exception:
>
> > /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-core/
> > property.rb:784:in `initialize': +type+ was DataMapper::Types::Yaml,
> > which is not a supported type (ArgumentError)
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/model/property.rb:51:in `new'
> >        from /usr/local/ruby/lib/ruby/gems/1.8/gems/dm-core-0.10.1/lib/dm-
> > core/model/property.rb:51:in `property'
> >        from /home/sliu/project/workflow/workflow/engine/execution.rb:9
> >        from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/
> > custom_require.rb:31:in `gem_original_require'
> >        from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/
> > custom_require.rb:31:in `require'
>
> > when I change back to `primitive String` and comment out the line
> > `length 65535`, it become OK.
>
> > I don't know the exact reason.
> > Hope someone help to indicate and fix it.
> > Thanks.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"DataMapper" 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/datamapper?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to