5

App Engine Modelクラスを特別な方法で設計し、コードを本番環境に配置し、ユーザーがApp Engineデータストアにデータを生成してしばらくの間アプリとやり取りできるようにします。App Engineの既存の生産データとスキーマ変更をどのように調整しますか?

ここで、モデルクラスの1つに変更を加えるとします。

私の場合はJavaアプリケーションでこれを行うための推奨プロセスはありますか?新しいコードを本番環境に置くと、既存のデータに対して実行中にアプリケーションが中断することはありません。古いスキーマを持っていますか?

たとえば、新しいコードをプロダクションにアップロードする前に、実動データをダウンロードしてテストする必要がありますか?

このタイプの問題のベストプラクティスは何ですか?

+0

正しい答えは、データがどれだけ変更されたか、データアクセスフレームワークがどれほど厳格かによって異なります。データストア自体はスキーマレスなので、気にしません。 –

+0

objectifyはこれを提供します。http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Migrating_Schemas – systempuntoout

答えて

2

スキーマの変更が許可されている場合、スキーマの変更が行われるまで、スキーマの変更がデフォルトになっているバージョンの作成を遅らせることが1つの方法です。

新しいバージョンをアップロードし、インデックスが更新されている間しばらく座ってから、更新が必要なエンティティをタッチして移行するためにmapreduceを実行します。それが完了したら、新しいバージョンをデフォルトにします。

関連する問題