There are still some limitations to the operations that #auto_upgrade! can perform. We're working hard on making it smarter, but there will always be scenarios where an automatic upgrade of your schema won't be possible. For example, there's no sane strategy for automatically changing a column length constraint from VARCHAR(100) to VARCHAR(50) . DataMapper can't know what it should do when the data doesn't validate against the new tightened constraints.
Full article: http://datamapper.org/why