计算机关闭后,本地GAE数据存储区不会保留数据

时间:2012-12-08 10:27:49

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

在我的本地计算机上(即http://localhost:8080/),我已将数据输入到我的GAE数据存储区中,用于名为Article的实体。关闭我的电脑,然后第二天重新启动,我发现数据存储空了:没有实体。有没有办法在将来阻止这种情况?

如何在本地数据存储中复制数据?此外,我是否可以稍后将所述数据上传到localhost和production?

我的模型是ndb

我正在使用Max OS X和Python 2.7,如果这些重要。

3 个答案:

答案 0 :(得分:8)

我遇到过同样的问题。在运行dev_appserver.py时声明数据存储路径应该修复它。这些是我在启动dev_appserver

时使用的参数
python dev_appserver.py --high_replication --use_sqlite --datastore_path=myapp.datastore --blobstore_path=myapp_blobs

这将使用sqlite并将数据保存在myapp.datastore文件中。如果要将其保存在其他目录中,请使用--datastore_path = / path / to / myapp / myapp.datastore

我还使用--blobstore_path将我的blob保存在特定目录中。我发现声明保存blob的目录更可靠。再一次,这是--blobstore_path = / path / to / myapp / blobs或者你想要的任何东西。

自从声明blob和数据存储路径以来,我没有在本地丢失任何数据。更多信息可以在App Engine文档中找到:

https://developers.google.com/appengine/docs/python/tools/devserver#Using_the_Datastore

答案 1 :(得分:1)

本地数据存储区中的数据将被保留,除非您使用-c标志启动它以清除它,至少在PC上是这样。因此,您可能对临时文件或权限或其他问题有不同的问题。

本地数据使用与实际生产服务器不同的方法存储,因此不确定是否可以进行直接备份。如果要将数据上传到本地和已部署的服务器,可以使用上传工具套件:uploading data

  

批量加载程序工具可以上传和下载应用程序数据存储区中的数据。只需进行一些设置,您就可以从CSV和XML文件上传新的数据存储区实体,并将实体数据下载到CSV,XML和文本文件中。大多数电子表格应用程序都可以导出CSV文件,使非开发人员和其他应用程序可以轻松生成可导入应用程序的数据。您可以自定义上载和下载逻辑以使用不同类型的文件,或进行其他数据处理。

因此您可以通过将数据下载到文件来“备份”。

要将数据加载/拉入本地开发服务器,只需为其提供本地URL即可。

答案 2 :(得分:1)

数据存储通常在关闭时保存到磁盘。如果你关闭计算机而不关闭服务器,我可以看到这种情况。