Open jpr5 opened 13 years ago
@jpr5 just for the record, this issue will be addressed in 1.3.0. I'm working on the improved property API which is already merged in to master in dm-core, dm-types and dm-migrations (see my recent commits in those repos)
@solnic That's great. Does that mean you're saying don't merge this pull request in the meantime? The fix itself is 1 line (in dm-migrations).
@jpr5 ok so as I commented on dm-migrations' pull request it's already merged in. I didn't merge this pull request though as the specs you added fail for me. Let's work this out for 1.2.1
Simple enough use case:
Json property needs more than 64k, so adjust the :length the same way you do Text's. b00m on migration.
My solution was to add an additional dm-migrations' Adapter#type_map lookup for property.class.superclass, before falling back to the underlying DM primitive.
This will solve the vast majority of cases, like Json < Text. It doesn't solve for any cases of inheritance depth from builtin type > 1: MoreThanJson < Json. (MoreThanJson.class.superclass won't be in Adapter#type_map's table.) I argue that a practical 99% is better than a real 0%.
More detailed explanation in both the commits and the integration spec I provided for dm-types.
FYI merging this pull will require 2 more steps: