ActiveObjectsにおけるアクティブレコードパターン

アクティブレコードパターン

重要なことは、アクティブレコードのオブジェクトは、データベースアクセスをカプセル化していることです。オブジェクトがデータアクセスの機能を提供していると言い換えてもいいでしょう。

もっと具体的にいえば、エンティティクラスは、フレームワークで提供されているデータアクセス機能を持ったクラスを継承して作るということです。

ActiveObjectsについてもこのように考えないと、わかりづらいと思います。
AOにより、データベースはカプセル化(=データベースの複雑な構造を見えなく)されています。そのため、プログラマがDBの構造を意識する必要性はありません。実際にデータベースへアクセスするには、AOの提供するEntityクラスを継承すればよいのです。

AOでのDBの構造の作成・変更

AOではDBの構造(テーブル構造)は直接変更してはいけないと思います。AOによってDB構造の作成と操作はカプセル化されています。ということは、DB構造を直接変更することは、カプセル化を破壊することになってしまいます。
AOのDBの構造の作成・変更は、全てマイグレーションで行うのが正解でしょう。

他の、ORマッパーについてはよく知りませんが、どうなのでしょう?