我刚刚注意到,当我有一个正在运行的GAE应用程序实例时,当我使用Python代码或在管理控制台中添加或删除条目时,数据存储文件没有任何变化。我甚至可以删除文件,仍然有所有的数据安全和健全的管理区和访问代码。但是当我重新启动我的应用程序时,所有的数据显然都消失了,我有一个空白的数据存储。所以,问题是——GAE是否只有在启动时才会从文件中读取所有数据,然后在内存中进行处理,在我停止应用程序后保存数据?当应用程序运行数据存储时,它会发出任何请求吗?如果它在运行时没有将任何内容保存到文件中,那么,如果应用程序意外停止,数据可能会丢失?如果你知道它在这方面是怎么工作的,请给我讲清楚。在
默认情况下,
dev_appserver
将把它的数据存储在一个临时位置(这就是为什么它消失了,你看不到任何变化)如果您不希望数据在重新启动时消失,请在运行dev server时设置
datastore_path
,如下所示:正如nick所说,dev服务器并不是为了防弹而构建的,它是为了帮助您快速开发应用程序而设计的。生产设置非常不同,在处理特殊情况时不会发生任何意外情况。在
数据存储读取和写入其底层文件的方式各不相同—标准数据存储在启动时读取,并以日志方式逐步写入,就像应用程序修改数据一样。SQLite后端使用SQLite数据库。在
不过,您不必在意—这两个后端都不是为在出现故障时具有健壮性而设计的,因为它们是开发后端。你也不应该修改或删除底层文件。在
相关问题 更多 >
编程相关推荐