Как создать локальную копию хранилища данных GAE? - PullRequest
23 голосов
/ 20 апреля 2010

Я хочу сделать клиентскую версию приложения GAE, в которой будут храниться точные данные онлайн-версии. (Myapp.appspot.com) Если я могу использовать SDK, есть ли какая-либо библиотека или инструменты для синхронизации онлайн и SDK-версии?Я пытаюсь использовать Навалдер, но не могу загрузить загруженные данные в локальный SDK?Пожалуйста, помогите.

Ответы [ 3 ]

29 голосов
/ 30 октября 2011

Как объяснено в этой статье (ссылка обновлена, спасибо Зиэду Хамди)

Вам просто нужно включить удаленный API

builtins:
- remote_api: on

Обновите приложение, затем выполните следующие команды:

appcfg.py download_data -A s~YOUR_APP_NAME --url=http://YOUR_APP_NAME.appspot.com/_ah/remote_api/ --filename=data.csv
appcfg.py --url=http://localhost:8080/_ah/remote_api/ --filename=data.csv upload_data .

Редактировать для после 12 апреля 2016 года в последнем SDK AppEngine:

Вышеуказанное работает для SDK версии 1.9.0 и ранее. Однако при амортизации ClientLogin , вышеприведенное приведет к ошибке

03:13 PM Uploading data records.
[INFO    ] Logging to bulkloader-log-20160909.151355
[INFO    ] Throttling transfers:
[INFO    ] Bandwidth: 250000 bytes/second
[INFO    ] HTTP connections: 8/second
[INFO    ] Entities inserted/fetched/modified: 20/second
[INFO    ] Batch Size: 10
[INFO    ] Opening database: bulkloader-progress-20160909.151355.sql3
2016-09-09 15:13:55,175 INFO client.py:578 Refreshing due to a 401 (attempt 1/2)
2016-09-09 15:13:55,176 INFO client.py:804 Refreshing access_token
2016-09-09 15:13:55,312 INFO client.py:578 Refreshing due to a 401 (attempt 2/2)

Рекомендовано Ансси здесь, мы можем использовать сервер API напрямую, не сталкиваясь с этой ошибкой. Для типичного запуска dev_appserver вы получите следующий вывод

INFO     2016-09-09 19:27:11,662 sdk_update_checker.py:229] Checking for updates to the SDK.
INFO     2016-09-09 19:27:11,899 api_server.py:205] Starting API server at: http://localhost:52497
INFO     2016-09-09 19:27:11,905 dispatcher.py:197] Starting module "default" running at: http://localhost:8080
INFO     2016-09-09 19:27:11,918 admin_server.py:116] Starting admin server at: http://localhost:8000

вместо вышеуказанного для загрузки используйте порт API, в данном случае

appcfg.py --url=http://localhost:52497/_ah/remote_api/ --filename=data.csv upload_data .
15 голосов
/ 20 апреля 2010

См. документы для получения подробной информации о том, как загрузить и загрузить все хранилище данных. Просто массовая загрузка с производства, а затем массовая загрузка в локальное хранилище данных.

Имейте в виду, однако, что локальное хранилище данных не предназначено для обработки больших объемов данных - вы можете столкнуться с проблемами производительности или памяти.

2 голосов
/ 06 февраля 2014

Местоположение статьи изменилось, я нашел ее здесь: http://mbrochh.tumblr.com/post/6937702727/importing-google-app-engine-datastore-into-your-local

...