4

在我的本地机器(即http://localhost:8080/)上,我已将某个名为Article. 关闭计算机然后第二天重新启动后,我发现数据存储为空:没有实体。将来有没有办法防止这种情况发生?

如何在本地数据存储中制作数据副本?另外,我以后可以将上述数据上传到本地主机和生产环境吗?

我的型号是ndb

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

4

3 回答 3

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/blob 或任何您想要的。

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

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

于 2012-12-08T17:12:43.973 回答
1

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

于 2012-12-08T15:58:05.627 回答
1

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

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

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

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

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

于 2012-12-08T11:03:56.737 回答