2010-07-15 56 views
3

我一直在使用eclipse中的GAE處理應用程序,並且我有一堆數據對象。有時我需要更改它們的類型,即String - >Text,以便它們可以存儲更多數據。GAE在本地對象存儲中更改數據

對數據/對象存儲區執行批量更新的最簡單方法是什麼?我知道我可能可以編寫Java代碼來遍歷每個對象,但肯定有更簡單的方法?

回答

3

通常情況下,除了迭代存儲和手工更改數據之外,沒有別的辦法。數據存儲不可訪問。不過從SDK 1.3.3版本開始,現在可以使用SQLite作爲數據存儲後端。要啓用,設置標誌--use_sqlite = true

然後您需要找到SQLite文件,並且應該能夠使用任何SQLite客戶端來操作數據。

更新:正如Nick Johnson指出的那樣,SQLite支持僅適用於Python SDK並且數據被編碼,因此根據更改直接編輯表格內容的任務變得非常困難。考慮到海報正在尋找一個簡單的基於Java的解決方案,這使得這個答案無效:/

+0

這是錯誤的。 SQLite後端仍然以編碼的協議緩衝區格式存儲數據;儘管理論上可以寫一些東西來直接更新數據,但這會不必要的複雜。另外,提問者指的是Java SDK,而SQLite後端是特定於Python SDK的。 – 2010-07-19 11:27:54

+0

我承認我的回答是基於1.3.3 SDK支持SQLite後端的公告而作出的一廂情願的想法。尼克其實是最好的人之一。我會更新我的答案,並upvote他的:) – 2010-07-19 13:34:14

1

最好的選擇是新發布的appengine-mapreduce library,它同時具有Java和Python版本。

但是,在將字符串轉換爲文本的情況下,不需要手動更新舊實體 - 它們將在您的應用下一次寫入時被修復,並且仍然可以在與此同時。

+0

它沒有爲我工作,我正在更新實體和獲取例外。 – Jacob 2010-07-19 22:22:25

+0

爲了提供幫助,我們需要更多細節。什麼例外?哪裏? – 2010-07-20 07:22:14