So, you build a great shiny cloudy 2.0 website on top of AppEngine, with thousands upon thousands of images saved into the datastore and gigs of data at the blobstore. How do you backup them?
相关问题
- how to define constructor for Python's new Nam
- streaming md5sum of contents of a large remote tar
- How to get the background from multiple images by
- Evil ctypes hack in python
- Correctly parse PDF paragraphs with Python
There is now a backup option available in the dashboard. See "datastore admin".
I had some trouble with the suggested solution, so I had to fight with it a little. Here's what I came up with:
1. Add remote_api to app.yaml as described above or simply as
builtins:
- remote_api: on
2. Creating bulk loader as described above resulted in an authentication error for me like bug1125. The command below worked
appcfg.py create_bulkloader_config --filename=<appfolder>/bulkloader.yaml <appfolder>/
3. Change all the TODOs in bulkloader. In my case I changed all the connectors to "csv" and gave all foreign keys meaningful names.
4. I used the following (bash) command to back up all the kinds
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
Note: Both commands are meant to run for a folder above the app folder
The command here does not work
http://code.google.com/appengine/docs/python/tools/uploadingdata.html#Downloading_and_Uploading_All_Data
--dump
needs to be replaced withdownload_data
,--restore
needs to be replaced withupload_data
and--app_id
needs to be changed to--application
Then it would read
Downloading and Uploading All Data
You can download and upload every entity of a kind in a format suitable for backup and restore, all without writing any additional code or configuration. To download all entities of all kinds, run the folowing command:
You can also use the --kind=... argument to download all entities of a specific kind:
Note: Downloading all entities of all kinds only works on App Engine, and does not work with the development server. To upload data to the app's datastore from a file created by appcfg.py --dump, run the following command:
When data is downloaded, the entities are stored along with their original keys. When the data is restored, the original keys are used. If an entity exists in the datastore with the same key as an entity being restored, the entity in the datastore is replaced. You can use --restore to replace the data in the app from which it was dumped, or you can use it to upload the data to a different application. Entities with numeric system IDs will be restored with the same IDs, and reference properties will be preserved.
use google app engine data export http://code.google.com/appengine/docs/python/tools/uploadingdata.html