There's migrant for ActiveRecord.
There’s a gem called migrant which generates migrations for you.Contribute to the debate »
View ArticleSeparation of concerns
Separates business logic of models from how or where the data resides. The data can then be retrieved from a database, or cache, or made up on the spot for unit testing purposes.Contribute to the debate »
View ArticleDoes not enforces integer primkey keys
Unline AR, DM doesnt enforces and integer, auto-increment “id” column as PKContribute to the debate »
View ArticleDataMapper provides a familiar tool for JavaEE/JPA/Hibernate...
Java developers usually use a syntax similar to datamapper (e.gHibernateA w/ annotation). Its easier in Ruby, and this makes it more attractive to a broad community of developers.Contribute to the...
View ArticleAR is exactly ModelDriven development
ActiveModel and the Rails framework is exactly Model Driven development. You don’t really care on how the data is stored, you just define the model: just define your model attributes and they are...
View ArticleNot exactly a plus. It depends on the application.
This argument in favor of ‘Model-driven development’ may not always be counted as a point in favor of DM. Sometimes the application requires ‘Database-driven development’.Contribute to the debate »
View ArticleBetter support for full-test search
ActiveRecord offers more options for strong search solutions such as Arel, Sphinx and Thinking Sphinx.Contribute to the debate »
View ArticleActiveRecord has better full-text search support
There are more available options for strong search solutions such as Arel, Sphinx & Thinking SphinxContribute to the debate »
View ArticleActiveRecord doesn't support non-relational datastores
Otherwise, why would SuperModel, MongoDB, Mongoid, ToyStore, etc. exist? With the ActiveModel API factored out in AR 3.x, many of these support a common public API (ActiveModel’s API), but each is more...
View ArticleCustom attributes (attr_accessible style) != Property API
Both DataMapper and ActiveRecord support ‘custom attributes’ of the type described (custom getters and setters is more accurate) – it’s all Ruby, after all. But that misses the point: conceptual...
View ArticleCompositePrimaryKey gem is (and always will be) a monkey-patch
ActiveRecord assumes a simple primary key (called ‘id’) in many places, and a plugin like the referenced Composite Primary Key gem works by monkey-patching ActiveRecord’s internals to circumvent those...
View Articledm-migrations is not mature
To date (2011-03-29) it can’t even alter a column type in postgres.Contribute to the debate »
View ArticleNot writing manual migrations will get you into trouble later
DataMapper.auto_upgrade! is extremely limited. It is only good for creating tables and adding new columns to existing tables. It does not work in any of the following circumstances: * Deleting a column...
View ArticleDM leads to "Model-Driven" development while AR leads to...
AR leads to abstractions that are tightly bound to the relational model, in certain cases this can lead to a model that’s too tainted by the underlying database, it’s quirks and the skill-set of those...
View ArticleYou can have cross repository associations
You can easily setup different models to use different repositories (and/or adapters) and then setup belongs_to/has n associations on them. It just works out of the box.Contribute to the debate »
View ArticleYou don't have extra plugins you use with ActiveRecord?
Nearly every project I’ve worked on or seen used plugins for the model layer, no matter the ORM in use. The advantage with DataMapper is not having code that doesn’t get executed. “No code is faster...
View Article