2011-07-30 42 views
5

假設您以特定方式設計App Engine Model類,將代碼投入生產並允許用戶與應用程序交互一段時間,並將數據生成到App Engine數據存儲區。如何協調現有生產數據與App Engine中的模式更改?

現在,假設您決定對其中一個Model類進行更改。

是否有推薦的過程來做到這一點 - 在我的情況下,在一個Java應用程序 - 這樣,當新的代碼投入生產,它不會導致應用程序與預先存在的數據運行時破壞有舊的模式?

例如,您是否應該在將任何新代碼上傳到生產環境之前下載生產數據並進行測試?

這類問題的最佳做法是什麼?

+0

正確的答案通常取決於您的數據發生了多大變化以及您的數據訪問框架有多嚴格。數據存儲本身是無模式的,所以它不關心。 –

+0

objectify提供此http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Migrating_Schemas – systempuntoout

回答

2

如果您的模式更改允許,一種方法是延遲生成需要模式更改默認的版本,直到模式更改完成。

上傳新版本,讓它在索引更新時放置一段時間,然後運行mapreduce以觸摸(並遷移)需要更新的任何實體。完成後,將新版本設爲默認值。

相關問題