Ответ 1
использовать экспорт данных с помощью Google App http://code.google.com/appengine/docs/python/tools/uploadingdata.html
Итак, вы создаете отличный блестящий облачный веб-сайт 2.0 поверх AppEngine, с тысячами и тысячами изображений, сохраненных в хранилище данных и показов данных в блочном магазине. Как вы их создаете?
использовать экспорт данных с помощью Google App http://code.google.com/appengine/docs/python/tools/uploadingdata.html
Команда не работает
--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 для замены данных в приложении, из которого оно было сброшено, или вы можете использовать его для загрузки данных в другое приложение. Объекты с числовыми идентификаторами системы будут восстановлены с одинаковыми идентификаторами, а ссылочные свойства будут сохранены.
Теперь в панели управления имеется резервная копия. См. "Администратор хранилища данных".
У меня были проблемы с предлагаемым решением, поэтому мне пришлось немного с ним бороться. Вот что я придумал:
1. Добавьте remote_api в app.yaml, как описано выше, или просто как
builtins:
- remote_api: on
2. Создание загрузчика по объему, как описано выше, привело к ошибке аутентификации для меня, как bug1125. Приведенная ниже команда
appcfg.py create_bulkloader_config --filename=<appfolder>/bulkloader.yaml <appfolder>/
3. Измените все TODO в загрузчике. В моем случае я заменил все разъемы на "csv" и дал всем иностранным ключам значимые имена.
4. Я использовал следующую команду (bash) для резервного копирования всех видов
for f in
cat <appfolder>/bulkloader.yaml | grep "\- kind" | awk '{print $3}'
сделать
appcfg.py download_data <appfolder> /--filename = backup/$f.csv --config_file = <appfolder> /bulkloader.yaml --kind = $f
Молодцы
Код >
Примечание. Обе команды предназначены для работы в папке над папкой приложения.