ActiveRecord、DataMapper、Sequelをチェック:グローバル(静的変数)を使用するものもあれば、モデルを含むソースファイルをロードする前にデータベース接続を開く必要があるものもあります。さまざまなデータベースを使用するsinatraアプリケーションで使用するのに適したORM。
3 に答える
DataMapperは、マルチデータベースで使用するように設計されています。
のように言うだけで、複数のリポジトリを設定できますDataMapper.setup(:repository_one, "mysql://localhost/my_db_name")
。
次に、DataMapperは、参照してスコープに使用できるハッシュでセットアップされたすべてのリポジトリーを追跡します。
DataMapper.repository(:repository_one){ MyModel.all }
(デフォルトのスコープはDataMapper.repositoryであり、言うDataMapper.setup(:default, "postgres://localhost/my_primary_db")
などして設定できます)
ほとんどのORMで異なるデータベースを使用できるようです。DataMapperについては、知識の答えを見てください。Sequelの場合、データベースハンドラーをモデルに渡すことができます。
class Tag < Sequel::Model(db)
end
ここで、dbはデータベースを開いています。ActiveRecordの場合、establish_connectionメソッドを使用できます。
個人的には、すべてのORMおよび基本的なデータベースアクセスにSequelを好みます。これは、Sinatra / Padrinoで使用するものであり、Railsの外部でデータベースにアクセスする必要がある場合はいつでも使用します。
私はDataMapperを使用しましたが、Sequelの方が簡単で柔軟性があると感じましたが、おそらくそれが私の心の働きです。ActiveRecord自体は問題ありませんが、Railsと組み合わせると最も効果的だと思います。
どちらが「良い」ですか?それは主観的なものであり、ほとんどの場合、脳の働きに関係していると思います。