我的GAE python开发数据存储永远不会保存到文件中

时间:2012-04-20 12:52:53

标签: google-app-engine google-cloud-datastore python-2.7 eclipse-indigo

我刚刚开始使用GAE(Python 2.7 SDK 1.6.4),我已经设置了一个 在eclipse(indigo)中使用Pydev(最新版本)的简单测试项目 在Windows XP(SP3)上。

一切正常,我的应用程序可以在数据存储区和blobstore中记录数据 然后检索它,但是当我停止开发服务器并启动时 它再次丢失了数据存储区中的数据。事实并非如此 保留blob的blobstore很好,我可以看到 在C:\ Temp

中创建的blobstore文件夹

我做了明智的事情并回顾过去的帖子并找到了 大多数有这个问题的人通过改变它来解决它 数据存储文件的位置,所以我使用了以下参数;

--datastore_path="${workspace_loc}/myproject/datastore" 
--blobstore_path="${workspace_loc}/myproject/blobstore" 
"${workspace_loc}/myproject/src" 

我在你看到的同时移动了blobstore。

blobstore仍然有效,现在创建了blobstore文件夹 myproject文件夹按预期方式。仍未创建数据存储文件 然而,当我停止并重新启动开发服务器的数据 仍然迷失了。

开发服务器启动日志包括以下条目

WARNING  2012-04-20 10:49:04,513 datastore_file_stub.py:513] Could not 
read datastore data from C:\myworkspace\myproject\datastore 

所以我知道它正在尝试在正确的位置创建数据存储区。

最后,我解除了整个eclipse工作区文件夹并将其复制到 另一台计算机具有完全相同的设置,但它正在运行 Windows 7而不是Windows XP。

那里的一切都很好 - 数据存储文件和blobstore 现在创建了我期望它们的文件夹。

我已经设置了eclipse,python,gae,我的项目和我的eclipse启动 在两台计算机上以完全相同的方式存档,它可以在一台计算机上运行 不是另一个。也许XP与它有关,但老实说我 认为这不太可能。

我提出的唯一其他线索是最近的变化 GAE开发服务器之后停止写入数据存储文件 每一次改变,只有退出时冲洗,这个问题可能与我的密切相关;

App Engine local datastore content does not persist

但是,在我的代码中添加以下内容并没有任何帮助。

from google.appengine.tools import dev_appserver 
import atexit 
atexit.register(dev_appserver.TearDownStubs) 

因此,对于不正确的终止顺序而言,这不是我的意思 可以告诉我虽然可能是因为我刚把它添加到了错误的地方(我是python的新手)。

无论如何,我很难过,我真的很感激你的建议 伙计们可以想出来。

2 个答案:

答案 0 :(得分:2)

可能是http://code.google.com/p/googleappengine/issues/detail?id=7244并且是一个错误。希望很快就会有一个修复程序。

答案 1 :(得分:0)

你试过了吗?

- storage_path = ...

将存储所有本地文件(例如数据存储区,Blobstore文件,Google云端存储文件,日志等)的路径,除非被--datastore_path, - blobstore_path, - logs_path等覆盖

发现于https://developers.google.com/appengine/docs/python/tools/devserver?csw=1