2010-04-19 77 views
21

我想製作GAE應用程序的客戶端版本,以存儲在線版本的確切數據。(myapp.appspot.com)如果我可以使用sdk代替,是否有任何庫或工具可以同步在線和sdk版本?我嘗試使用bulkloader,但我無法將下載的數據加載到本地SDK?請幫忙。如何創建GAE數據存儲的本地副本?

回答

15

有關如何下載和上載整個數據存儲的詳細信息,請參見the docs。只需從生產中批量下載,然後批量上傳到本地數據存儲。

但請記住,本地數據存儲並不是用來處理大量數據的 - 您可能會遇到性能問題或內存問題。

+0

感謝Nick,在那裏我可以更清楚地知道如何批量上傳到本地數據存儲?真的需要爲我做這個工作。 – 2010-04-21 19:59:57

+1

請參閱該頁面上的'將數據加載到開發服務器'部分。你只需指定一個額外的命令行參數。 – 2010-04-22 09:06:47

+0

無論如何,尼克..我已經安裝了1.3.3 sdk,並且遇到了大約6000條記錄的一些錯誤,這些錯誤在記錄145上停止。並且當我想要在本地SDK控制檯上使用數據存儲區查看器時引發異常。怎麼了? – 2010-04-22 19:33:10

28

this article解釋(鏈接更新,感謝Zied哈姆迪)

你只需要啓用遠程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 . 

2016年4月12日後修改最新AppEngine SDK:

以上版本適用於SDK 1.9.0及以前版本。然而,隨着depreciation of 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) 

Recommended by Anssi here,我們可以使用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 . 
+5

爲了在本地爲我工作,我還需要將-A dev〜YOUR_APP_NAME添加到upload_data選項。 – ahanson 2014-04-02 16:31:23

+1

執行upload_data步驟時出現以下錯誤:'google.appengine.api.datastore_errors.BadRequestError:應用程序「dev〜my_app_name」無法訪問應用程序「my_app_name」的數據。我通過刪除''來解決這個問題。在行末。所以我寫道: appcfg.py --url = http:// localhost:8080/_ah/remote_api/--filename = data.csv upload_data – 2014-08-29 10:26:12

+1

這僅適用於python應用程序嗎? – morpheus05 2014-09-22 08:39:12