2010-04-19 100 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