Как сделать резервную копию сайта AppEngine? - PullRequest
14 голосов
/ 01 июня 2010

Итак, вы создаете отличный блестящий облачный веб-сайт 2.0 на базе AppEngine, в котором тысячи и тысячи изображений сохраняются в хранилище данных и концерты данных в BLOB-магазине. Как вы их резервное копирование?

Ответы [ 4 ]

7 голосов
/ 01 июня 2010

использовать экспорт данных Google App Engine http://code.google.com/appengine/docs/python/tools/uploadingdata.html

4 голосов
/ 01 июня 2010

Команда здесь не работает

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 для замены данных в приложении, из которого они были выгружены, или вы можете использовать его для загрузки данных в другое приложение. Объекты с числовыми системными идентификаторами будут восстановлены с теми же идентификаторами, а свойства ссылок будут сохранены.

2 голосов
/ 06 марта 2013

Теперь на панели инструментов доступна опция резервного копирования. См. «Администратор хранилища данных».

1 голос
/ 14 апреля 2011

У меня были некоторые проблемы с предлагаемым решением, поэтому мне пришлось немного с этим бороться. Вот что я придумал:
1. Добавьте remote_api в app.yaml, как описано выше, или просто как
builtins:<br/> - remote_api: on
2. Создание массового загрузчика, как описано выше, привело к ошибке аутентификации для меня, например bug1125 . Команда ниже сработала
appcfg.py create_bulkloader_config --filename=<appfolder>/bulkloader.yaml <appfolder>/
3. Измените все TODO в массовом загрузчике. В моем случае я изменил все разъемы на «csv» и дал всем значимым именам все внешние ключи.
4. Я использовал следующую (bash) команду для резервного копирования всех видов
for f in <code>cat <appfolder>/bulkloader.yaml | grep "\- kind" | awk '{print $3}'
делать
appcfg.py download_data / --filename = backup / $ f.csv --config_file = / bulkloader.yaml --kind = $ f
сделано


Примечание. Обе команды предназначены для запуска над папкой над папкой приложения

...