Google App Engine本地数据存储路径配置

时间:2011-07-14 18:14:47

标签: google-cloud-datastore

很抱歉问这个问题的第n个排列,但是我受到了阻碍。

我在OS X上运行GAE for python2.5,并且我在重新启动之间丢失了所有数据。根据我对相关SO帖子的理解,每次重启都会擦除本地数据存储文件的默认位置。我尝试使用以下命令将位置更改为中心/数据存储目录:

dev_appserver.py --datastore_path=/Users/Me/gae_apps/datastores /Users/Me/gae_apps/app_1

这不会产生错误,但是当我重新启动后启动dev_appserver.py时,我看到了这个输出,并且数据再次被擦除:

WARNING  2011-07-14 17:50:56,297 urlfetch_stub.py:108] No ssl package found. urlfetch will not be able to validate SSL certificates. 
INFO     2011-07-14 17:50:57,653 appengine_rpc.py:159] Server: appengine.google.com
INFO     2011-07-14 17:50:57,722 appcfg.py:453] Checking for updates to the SDK.
INFO     2011-07-14 17:50:58,448 appcfg.py:470] The SDK is up to date.
WARNING  2011-07-14 17:50:58,448 datastore_file_stub.py:511] Could not read datastore data from /var/folders/ps/psEgjl3fF+C5hecCKN2AW++++TI/-Tmp-/dev_appserver.datastore
INFO     2011-07-14 17:50:58,486 rdbms_sqlite.py:58] Connecting to SQLite database '' with file '/var/folders/ps/psEgjl3fF+C5hecCKN2AW++++TI/-Tmp-/dev_appserver.rdbms'
WARNING  2011-07-14 17:50:58,521 dev_appserver.py:4700] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging
INFO     2011-07-14 17:50:58,689 dev_appserver_multiprocess.py:637] Running application portfolio on port 8080: http://localhost:8080

我应该提一下,我有几个应用程序,所有这些应用程序都位于/ Users / Me / gae_apps /

下的不同目录中

不确定这是否与读取dev_appserver.datastore失败以及后续切换到SQLite有关。

非常感谢任何帮助。谢谢!

5 个答案:

答案 0 :(得分:2)

这样做“* - blobstore_path = / Users / me / Documents / workspace / app-name / --datastore_path = / Users / me / Documents / workspace / app-name / datastore.rbm *”,正在为...我,在OS X上。

答案 1 :(得分:1)

我在Linux中遇到过这个GAE版本的问题。我所做的是运行dev_appserver.py而不指定datastore_path。然后我找到了dev_appserver.datastore和/或dev_appserver.rdbms(我现在忘记了)在Linux中的/ tmp中。然后我将这些文件复制到我的〜/ gae / datastore /。

之后,当我使用--datastore_path运行dev_appserver.py时,它没有任何问题。

不确定它是否适用于OS X,但值得一试。

答案 2 :(得分:0)

可能是一把大锤在这里破解坚果但如果补丁没有帮助你可以script the AppEngine并强制它在启动时使用不同的路径。

答案 3 :(得分:0)

在使用新数据存储位置启动服务器后,您是否尝试在数据存储中插入任何数据?当我没有插入任何新数据时,我会收到你提到的错误:Could not read datastore data from ...

然而,当我启动我的应用程序,注册,然后重新启动应用程序时,我没有错误,并且使用了新的数据存储位置。

也许我误解了你的问题而你 重启后插入数据。在这种情况下,我无法重现您的问题。

答案 4 :(得分:0)

我一直在努力解决这个问题很长一段时间。由于奥马尔的回答,这终于奏效了。

只需将其添加为您的旗帜: --datastore_path = /用户/我/文档/工作区/应用程序名/ datastore.rbm

..明显改变“/datastore.rbm”之前的所有内容,指向您希望数据库存储的目录。