2011-03-30 70 views
0

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

+0

开发服务器不反映您的应用程序在生产GAE服务器上的运行方式,如果这是您所担心的问题? – 2011-03-30 12:52:10

回答

3

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

尽管如此,您不应该在意后端,因为它们都是发展后端,所以后端在面对失败时都不具备稳健性。您不应该修改或删除底层文件。

1

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

如果你不想让你的数据消失在重新启动设置--datastore_path时运行你的开发服务器,如:

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

尼克说,开发服务器没有内置到刀枪不入,它旨在帮助您快速开发应用程序。生产设置非常不同,在处理特殊情况时不会出现任何意想不到的情况。