2010-07-15 57 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