0

大規模な階層データセットを操作するプログラムを想像してください。プログラムは、そのような新しいデータセットをそれぞれ専用のテーブルに保存します。テーブルは、データセットに含まれるデータ型に応じて作成されます。まあ、特に珍しいことは何もありません。これは些細な状況です。しかし、進化のパラダイムが支配する Play 2.0 で、この種の調整を行うにはどうすればよいでしょうか? 私はそれについて考え始めることができません。

アップデート

結局のところ、簡単な方法はありません。Ok。ラウンドウェイ。

次のことは可能ですか。

1)プログラムにevolutionsファイル自体を作成させ、それらを自動的に適用しますか?Play の哲学に何らかの歪みが生じることはありますか?

2) 別のスレッドで別の DB システムを使用し、Play の固有のデータベース機能を使用しないでください。それはとても痛いでしょうか?

更新 2

MongoDB Casbah のドキュメントを読んでいて、とても気に入っています。これを Play アプリケーションで使用する予定です。Play で Casbah 経由で MongoDB を使用することの反証はありますか?

4

2 に答える 2

1

いい質問ですね。残念ながら、素晴らしい答えはありません。

一般的に、進化は良好であり、グループで作業する場合に望まれます。そのような場合は、手動の進化 (Ebean によって生成されたものではありません。現在の状態ではデータにとって危険です) に切り替え、初期 DDL を create ステートメントでできるだけ大きくする必要があります。

次の進化では、新しいテーブルを作成したり、既存のテーブルを変更したりできますが、神のために既存のテーブルを作成しようとしないでください:)

私が (または今も) 考えていた他のアプローチは、Ebean の自動生成された DDL (DB が空であることを常に前提としています) を使用して、いくつかの SQL スキーマ移行ツール (つまり mybatis) で差分スキーマを生成することですが、残念ながらこれには追加の作業が必要です。

正しい進化の構文がよくわからないときに最後に使用するのは、同様のモデルを追加して、Ebean のプラグインがそれらをどのように脅かすかを監視できる小さなテスト フィールド アプリです。残念ながら、このソリューションでも適切な変更は作成されませんが、メイン アプリでテストするよりはましです。

于 2012-04-24T19:38:00.257 に答える
0

さらに実験を重ねた結果、MongoDB を使用することにしました (実際には、さまざまなドキュメント指向の DBMS から選択する必要があり、MongoDB から始めることにしました)。MongoDB サーバーを確立し、Java ドライバー、Casbah (ドライバーの Scala ラッパー)、および必要なすべての依存関係をプロジェクトに組み込みましたが、すべて正常に動作します。SQL や進化のパラダイムはまったく必要ありません。

そして、私はデータベースで動作する Play の部分 (構成ファイル、anorm、およびそこにあるもの) を使用しておらず、それを無視してすべての Mongo を実行しています。

すべてうまくいきます!

于 2012-05-04T12:49:08.717 に答える