2009-06-16 3 views
9

他のプラットフォームやアプリケーションでも同じデータベースを簡単に使用できるように、データの関係を定義するために外部キーを使用してpostgresqlを使用したいと思います。ある種のRubyを持っていると、マイグレーションをサポートするデータベーススキーマを定義するDSLも素晴らしいでしょう。私にはどのフレームワークをお勧めしますか?スタンドアロンのルビーアプリケーションで使用するルビORMフレームワークはどれですか?

ORMのデータベーススキーマの変更、移行、およびバージョンを処理するためのフレームワークがありますか?

答えて

6

チェックアウトDataMapper。 I recently used itとSinatraをインストールし、アプリをHerokuにデプロイしました。私が書かなければならなかった唯一のSQLはCREATE DATABASEでした。他のすべてDataMapperは私のために.auto_migrate!と.auto_upgrade!機能性。

外部キーのサポートは、dm-constraintsプラグインにあります。

+0

「行とオブジェクトの間に1対1のマッピングがある」のを見て読んでいませんでした。そのIMHOはORMデザインのよくある間違いです。このようなシステムを使った私が取り組んだ2つのプロジェクトは、トランザクションに関して厄介な問題に遭遇しました。 – finnw

+0

詳細を教えてください、私は接続が見えません。 –

+0

とActiveRecordにはいずれも同じ欠点があります – SztupY

0

使用しない理由がありますかActiveRecord?それはRubyの標準のようなものです...

+2

はい。 OPは、複数のアプリケーション間でデータベースを共有したいと考えています。これはActiveRecordの強みではありません。 – finnw

+0

ARについての何もあなたがそれをやめてしまうことはありません。 – DanSingerman

+4

標準は良いことを意味しません。 ActiveSupportへの依存は、スタンドアロンアプリにとって危険かもしれません。 – SztupY

6

ActiveRecordとDataMapperの間で、後者を選択しました。どちらもActive Recordパターンを使用するので、実際にデータベーステーブルを空のドメインロジックなしでオブジェクトに戻すことができますが、DataMapperは操作が簡単でスレッドセーフです。 Sequelもありますが、私はそれに精通していません。

移行を処理するフレームワークが必要な場合は、merbとお伝えします。 Althougそれは完全なWebフレームワーク1.1です。これは前述の3つのORMフレームワーク(別々の自動移行を含む)の移行を処理できます。

2

M4DBIも興味があります。 DBIを活用して、必要に応じて生のSQLを書くことを可能にする低レベルのORM。

+0

これは良い仕事Pistosのように見えます。あなたの理論的根拠は正しいです。 –

+0

リンクが死んでいるようです –

+0

@Michael:基盤となるフレームワーク(Ruby DBI)がこれまであったので、ちょっと古いフレームワークですが、[github project](https://github.com/Pistos/m4dbi)を参照してください。 RDBIに取って代わり、M4DBIへの更新はまだ行っていません。 – Pistos

関連する問題