ORMs fail when, as they commonly do, they violate the O part of ORM.
There is still a lot of debate as to what exactly constitutes OO
programming, but one of the features everybody agrees on is
Encapsulation (aka
Information Hiding).
ORMs often fail to respect encapsulation by going deep into the
underlying implementation--the DDL, for example--of a database to do
their work. It is here that they fail hardest, precisely because they
fail at OO principles, not because RDBMSs are some
electrically different
beast.
In a later post, more on how to fix this.
I'm looking forward to your followup.