如何备份App Engine网站?

时间:2010-05-31 22:06:39

标签: python google-app-engine backup

因此,您在AppEngine上构建了一个非常闪亮的多云2.0网站,数以千计的图像保存在数据存储区中,并在blobstore中进行数据处理。你如何备份他们?

4 个答案:

答案 0 :(得分:7)

答案 1 :(得分:4)

此处的命令工作

http://code.google.com/appengine/docs/python/tools/uploadingdata.html#Downloading_and_Uploading_All_Data

--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文件夹上方的文件夹