どちらを使用しても問題なく、オブジェクトの永続Active Record性をアプリDataMapperに追加できました。Sinatra人々は私Sequelにとても良いと言いますが、哲学的には私見から離れた世界ではありませんActive Record.
Active Record移行ファイルのコレクション内のデータベースとテーブル定義のセットとしてテーブルをSequel綴り、データベーステーブルの構築または更新に使用されるスキーマにマージします。基礎となる SQL データベースに本当に関心がある場合は、これらのいずれかが最適です。私はそれらが1つのうち6つ、もう1つが半ダースであることを発見しました。
DataMapperよりオブジェクト中心であり、オブジェクト独自のクラス定義で必要なプロパティとオブジェクトの関係を定義できます。そして、アプリの起動時に呼び出しを行うDataMapper.auto_upgrade!と、オブジェクト グラフに合わせてデータベースがアップグレードされます。利点は、オブジェクトが持つ可能性のあるプロパティを見つけるために探す場所が 1 か所しかないことです。欠点は、基礎となるデータベースの詳細をあまり制御できないことですが、マッピングを厳密に定義することは不可能ではありませんが、DataMapperデータベース テーブルのオブジェクト グラフを気にする場合にはうまく機能します。
幸いなことに、オブジェクト グラフからSQLデータベース テーブルへのマッピングを定義すると、ほとんどすべて同じように機能します。すべてが、関連するオブジェクトのコレクションの遅延ロードまたはプリエンプティブ ロード、多対多の関係、ポリモーフィズムなどをサポートし、構成とシードの詳細のみが異なる傾向があります。
DataMapperアプリのオブジェクト グラフはまだ流動的であるため、データベース スキーマを投げたり破棄したりする速さだけを理由にプロジェクトを開始することがよくあります。Active Recordスキーマが落ち着いたらすぐにリファクタリングして使用します。Sequel次のプロジェクトでは、人々が絶賛しているように見えるので、やってみようと思います。