The ticket: http://datamapper.lighthouseapp.com/projects/20609/tickets/999-dm-types-yaml-reverted-to-using-string-rather-than-text-type
Until this is fixed, you cannot use Yaml fields with MySQL unless you use my (lame) monkeypatch. ..tony.. On Thu, Oct 1, 2009 at 2:19 PM, 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 -~----------~----~----~----~------~----~------~--~---
