我已经使用App Engine和Python几个月了。现在我的应用程序有相当数量的代码,我正在尝试解决到目前为止我忽略的问题:
每次关闭计算机时,都会删除所有开发数据存储区实体。
我希望在下次启动开发服务器之前保留这些数据。但我也希望能够在不丢失所有这些数据的情况下关闭计算机。
我该怎么办?
非常感谢
========更新==========
当我按照@moishe的说明设置datastore_path标志时,我的开发服务器一旦写入数据存储区就会崩溃。
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore_file_stub.py", line 557, in __WritePickled
os.rename(tmp_filename, filename)
OSError: [Errno 13] Permission denied
因此,我给了这个文件夹所有的UNIX权限
chmod a+w /my_app_folder
但我现在有另一个错误
OSError: [Errno 21] Is a directory
显然路径不应该是目录。所以我把路径改为:
/my_app_folder/data.datastore
现在它有效! PFF ...
答案 0 :(得分:6)
也许默认数据存储路径位于关机时被删除的/ tmp目录中?您可以在dev_appserver.py中使用--datastore_path
标志手动设置路径。有关详细信息,请参阅the docs。
答案 1 :(得分:3)
此清算不应是默认行为。
--clear_datastore
标志。
我曾设置此项以重新启动某些测试但忘记将其删除。
删除启动器中的现有应用程序并创建新应用程序。看看是否有帮助。
确认操作系统未删除该文件。如果您打开应用程序的日志,然后启动它,输出将显示sqlite文件所在的位置(例如T:\ temp \ dev_appserver.rdbms)
答案 2 :(得分:3)
标志:
--storage_path=
...
所有本地文件(例如数据存储区,Blobstore文件, 除非存储谷歌云存储文件,日志等) 被--datastore_path, - blobstore_path, - logs_path等覆盖
发现于https://developers.google.com/appengine/docs/python/tools/devserver?csw=1
答案 3 :(得分:-1)
我遇到了同样的问题,安装最新的gae SDK解决了它。
与此处的情况一样:app engine datastore auto-clears every time project runs