我刚刚开始使用 GAE (Python 2.7 SDK 1.6.4),我已经在 Windows XP (SP3) 上的 eclipse (indigo) 中使用 Pydev (最新版本) 建立了一个简单的测试项目。
一切正常,我的应用程序可以在数据存储和 blobstore 中记录数据,然后检索它,但是当我停止开发服务器并重新启动它时,数据存储中的数据会丢失。这不是 blobstore 的情况,它可以很好地保留 blob,我可以看到在 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 开发服务器的更改在每次更改后停止写入数据存储文件,并且仅在退出时刷新,这个问题可能与我的密切相关;
但是,将以下内容添加到我的代码中根本没有帮助。
from google.appengine.tools import dev_appserver
import atexit
atexit.register(dev_appserver.TearDownStubs)
因此,据我所知,这并不是因为终止序列不正确,尽管可能是我只是将它添加到了错误的位置(我是 python 新手)。
无论如何,我很难过,我会非常感谢你们能提出的建议。