因此,您在AppEngine上构建了一个非常闪亮的多云2.0网站,数以千计的图像保存在数据存储区中,并在blobstore中进行数据处理。你如何备份他们?
答案 0 :(得分:7)
答案 1 :(得分:4)
此处的命令不工作
--dump
需要替换为download_data
,--restore
需要替换为upload_data
,--app_id
需要更改为--application
然后它会读
您可以以适合备份和恢复的格式下载和上传某种实体,无需编写任何其他代码或配置。要下载所有类型的所有实体,请运行以下命令:
appcfg.py download_data --application=<app-id> --url=http://<appname>.appspot.com/remote_api --filename=<data-filename>
您还可以使用--kind = ...参数下载特定类型的所有实体:
appcfg.py download_data --application=<app-id> --kind=<kind> --url=http://<appname>.appspot.com/remote_api --filename=<data-filename>
注意:下载所有类型的实体仅适用于App Engine,不适用于开发服务器。 要从appcfg.py --dump创建的文件将数据上传到应用程序的数据存储区,请运行以下命令:
appcfg.py upload_data --application=<app-id> --kind=<kind> --filename=<data-filename> <app-directory>
下载数据时,实体与其原始密钥一起存储。恢复数据后,将使用原始密钥。如果数据存储中存在与要还原的实体具有相同密钥的实体,则替换数据存储中的实体。 您可以使用--restore替换转储它的应用程序中的数据,也可以使用它将数据上载到其他应用程序。具有数字系统ID的实体将使用相同的ID进行恢复,并且将保留引用属性。
答案 2 :(得分:2)
现在,仪表板中提供了备份选项。请参阅“datastore admin”。
答案 3 :(得分:1)
我在建议的解决方案上遇到了一些麻烦,所以我不得不与它进行一些斗争。这就是我想出的:
1.如上所述将remote_api添加到app.yaml或简单地作为
builtins:
- remote_api: on
2.如上所述创建批量加载器导致我的身份验证错误,如bug1125。以下命令工作了
appcfg.py create_bulkloader_config --filename=<appfolder>/bulkloader.yaml <appfolder>/
3.更改bulkloader中的所有TODO。在我的情况下,我将所有连接器更改为“csv”,并为所有外键提供了有意义的名称
4.我使用以下(bash)命令备份所有种类
for f in
cat <appfolder>/bulkloader.yaml | grep "\- kind" | awk '{print $3}'
do
appcfg.py download_data <appfolder>/ --filename=backup/$f.csv --config_file=<appfolder>/bulkloader.yaml --kind=$f
done
注意:这两个命令都适用于app文件夹上方的文件夹