GAE 修改本地对象存储中的数据

3

我一直在使用Eclipse中的GAE开发应用程序,有很多数据对象。有时我需要更改它们的类型,例如String -> Text,以便它们可以存储更多的数据。

有没有最快最简单的方法来批量更新数据/对象存储?我知道我可能可以编写Java代码迭代每个对象,但肯定有更简单的方法吧?

2个回答

3

通常情况下,没有其他方法可以迭代存储并手动更改数据。数据存储不可访问。但是,从SDK的1.3.3版本开始,现在可以使用SQLite作为数据存储后端。要启用,请设置标志--use_sqlite=true

然后,您需要找到SQLite文件,并应该能够使用任何SQLite客户端来操作数据。

更新:正如Nick Johnson所指出的那样,SQLite支持仅适用于Python SDK,并且数据已编码,这使得直接编辑表内容的任务相当困难,具体取决于更改。这使得这个答案无效,因为发布者正在寻找一个简单的、基于Java的解决方案 :/


这是错误的。SQLite后端仍然以编码的协议缓冲格式存储数据;虽然理论上可以编写一些东西直接更新数据,但这将是不必要的复杂。此外,提问者提到的是Java SDK,而SQLite后端是特定于Python SDK的。 - Nick Johnson
我承认我的回答是基于1.3.3 SDK支持SQLite后端的公告而产生的一厢情愿的想法。Nick实际上是最适合回答这个问题的人之一。我会更新我的回答并点赞他的回答 :) - Claude Vedovini

1

对于这个问题,最好的选择是新发布的appengine-mapreduce库,它有Java和Python版本。

但是,在将String转换为Text的情况下,没有必要手动更新旧实体 - 当它们由您的应用程序下次写入时,它们将被修复,并在此期间仍然正常工作。


它对我没用,我正在更新实体并且出现了异常。 - Jay
我们需要更多的细节才能提供帮助。是什么异常?在哪里? - Nick Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接