Jak utworzyć lokalną kopię magazynu danych GAE?

Chcę zrobić wersję kliencką aplikacji GAE, która przechowuje dokładne dane wersji online. (myapp.appspot.com) jeśli Mogę zamiast tego użyć sdk, czy jakaś Biblioteka lub narzędzia do synchronizacji online i wersji sdk? Próbuję użyć bulkloader, ale nie mogę załadować pobranych danych do lokalnego SDK? Proszę o pomoc.

Author: Dan McGrath, 2010-04-20

3 answers

Zobacz docs aby dowiedzieć się, jak pobrać i przesłać cały magazyn danych. Po prostu zbiorcze pobieranie z produkcji, a następnie zbiorcze przesyłanie do lokalnego magazynu danych.

Pamiętaj jednak, że lokalny magazyn danych nie jest zaprojektowany do obsługi dużych ilości danych - możesz napotkać problemy z wydajnością lub pamięcią.

 15
Author: Nick Johnson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-20 09:42:51

Jak wyjaśniono w Ten artykuł (link zaktualizowany, dzięki Zied Hamdi)

Po prostu musisz włączyć zdalne api

builtins:
- remote_api: on

Zaktualizuj swoją aplikację, a następnie uruchom następujące polecenia:

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 .

Edycja po 12 kwietnia 2016 na najnowszym AppEngine SDK:

Powyższe działa dla SDK w wersji 1.9.0 i wcześniej. Jednak z deprecjacja ClientLogin , powyższe spowoduje błąd

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)

Polecane przez Anssi tutaj, możemy Użyj serwera API bezpośrednio bez uruchamiania się tego błędu. Dla typowego uruchomienia dev_appserver otrzymujemy następujące wyjście

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

Zamiast powyższego do przesyłania użyj portu API, w tym przypadku

appcfg.py --url=http://localhost:52497/_ah/remote_api/ --filename=data.csv upload_data .
 29
Author: Olivier.Roger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-10 00:28:05
 2
Author: Zied Hamdi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-24 08:22:18