本地GAE是否在硬盘驱动器运行时读取和写入本地数据存储文件?

时间:2011-03-30 10:09:30

标签: python google-app-engine local-storage

我刚刚注意到,当我有一个GAE应用程序的运行实例时,当我使用Python代码或管理控制台添加或删除条目时,数据存储文件没有任何反应。我甚至可以删除该文件,并且仍然可以在管理区域中安全地保存所有数据,并且可以从代码访问。但是当我重新启动我的应用程序时,所有数据显然都消失了,我有一个空白的数据存储区。那么,问题是 - GAE是否只在文件启动时读取文件中的所有数据,然后在内存中处理它,在我停止应用程序后保存数据?应用程序运行时是否对数据存储文件发出任何请求?如果文件在运行时没有保存任何内容,那么,如果应用程序意外停止,数据可能会丢失?如果你知道它在这方面是如何工作的,请告诉我。

2 个答案:

答案 0 :(得分:3)

数据存储区读取和写入其基础文件的方式各不相同 - 标准数据存储区在启动时读取,并在应用程序修改数据时逐步编写日志样式。 SQLite后端使用SQLite数据库。

尽管如此,你不应该关心 - 因为它们是开发后端,所以后端都不是为了在面对失败时的稳健性而设计的。您也不应该修改或删除基础文件。

答案 1 :(得分:1)

默认情况下,dev_appserver会将其数据存储在临时位置(这就是为什么它会消失,你看不到任何变化)

如果您不希望在运行您的开发服务器时重启集--datastore_path上的数据消失,请执行以下操作:

dev_appserver.py --datastore_path /path/to/app/myapp.db /path/to/app

正如尼克所说,开发服务器并非构建为防弹,它旨在帮助您快速开发应用程序。生产设置非常不同,在处理特殊情况时不会发生任何意外情况。