对于Google App Engine的Java实现,似乎没有相应的Python App Engine的_ah / admin .
有没有手动方式我可以浏览数据存储区?我的机器上的文件在哪里? (我在OS X上使用Eclipse的App Engine插件) .
在最新版本的SDK(1.7.6)中,开发服务器的管理部分随之改变了它的位置
分析服务器输出日志,我们可以看到它可以在以下位置访问:
http://localhost:8000
和数据存储区查看器:
http://localhost:8000/datastore
看起来很整洁 - 根据谷歌的新设计指南 .
http://googleappengine.blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html:“最后,dev appserver有一个数据查看器 . 在本地启动你的应用程序并将你的浏览器指向http:// localhost:8888 / _ah / admin http://localhost:8000/datastore *来检查它 . ”
*截至1.7.7
目前没有Java SDK的数据存储区查看器 - 应该会在下一个SDK版本中出现 . 与此同时,您最好的选择是使用数据存储区查看代码编写自己的管理界面 - 或者等待下一个SDK版本 .
Java App Engine现在有一个本地数据存储查看器,可在 http://localhost:8080/_ah/admin 访问 .
http://localhost:8080/_ah/admin
我在我的Windows Eclipse环境中的\ war \ WEB-INF \ appengine-generated \ local_db.bin上有本地数据存储区
据我所知,它使用名为“协议缓冲区”的内部格式 . 我没有外部工具以人类可读的格式呈现文件 .
我正在使用这样简单的“查看器”代码:
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/plain"); final DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); final Query query = new Query("Table/Entity Name"); //query.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.DESCENDING); for (final Entity entity : datastore.prepare(query).asIterable()) { resp.getWriter().println(entity.getKey().toString()); final Map<String, Object> properties = entity.getProperties(); final String[] propertyNames = properties.keySet().toArray( new String[properties.size()]); for(final String propertyName : propertyNames) { resp.getWriter().println("-> " + propertyName + ": " + entity.getProperty(propertyName)); } } }
由于Google App Engines数据存储区查看器不支持显示引用实体的集合,因此我修改了Paul的版本以显示所有后代实体:
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String entityParam = req.getParameter("e"); resp.setContentType("text/plain"); final DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); // Original query final Query queryOrig = new Query(entityParam); queryOrig.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.ASCENDING); for (final Entity entityOrig : datastore.prepare(queryOrig).asIterable()) { // Query for this entity and all its descendant entities and collections final Query query = new Query(); query.setAncestor(entityOrig.getKey()); query.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.ASCENDING); for (final Entity entity : datastore.prepare(query).asIterable()) { resp.getWriter().println(entity.getKey().toString()); // Print properties final Map<String, Object> properties = entity.getProperties(); final String[] propertyNames = properties.keySet().toArray(new String[properties.size()]); for(final String propertyName : propertyNames) { resp.getWriter().println("-> " + propertyName + ": " + entity.getProperty(propertyName)); } } } }
应该注意,没有为空集合/引用实体显示任何内容 .
使用文本编辑器(如记事本)打开 \war\WEB-INF\appengine-generated\local_db.bin 文件 .
\war\WEB-INF\appengine-generated\local_db.bin
数据是乱码的,但至少你可以阅读它,你可以复制以提取它 .
6 回答
在最新版本的SDK(1.7.6)中,开发服务器的管理部分随之改变了它的位置
分析服务器输出日志,我们可以看到它可以在以下位置访问:
http://localhost:8000
和数据存储区查看器:
http://localhost:8000/datastore
看起来很整洁 - 根据谷歌的新设计指南 .
http://googleappengine.blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html:“最后,dev appserver有一个数据查看器 . 在本地启动你的应用程序并将你的浏览器指向http:// localhost:8888 / _ah / admin
http://localhost:8000/datastore
*来检查它 . ”*截至1.7.7
目前没有Java SDK的数据存储区查看器 - 应该会在下一个SDK版本中出现 . 与此同时,您最好的选择是使用数据存储区查看代码编写自己的管理界面 - 或者等待下一个SDK版本 .
Java App Engine现在有一个本地数据存储查看器,可在
http://localhost:8080/_ah/admin
访问 .我在我的Windows Eclipse环境中的\ war \ WEB-INF \ appengine-generated \ local_db.bin上有本地数据存储区
据我所知,它使用名为“协议缓冲区”的内部格式 . 我没有外部工具以人类可读的格式呈现文件 .
我正在使用这样简单的“查看器”代码:
由于Google App Engines数据存储区查看器不支持显示引用实体的集合,因此我修改了Paul的版本以显示所有后代实体:
应该注意,没有为空集合/引用实体显示任何内容 .
使用文本编辑器(如记事本)打开
\war\WEB-INF\appengine-generated\local_db.bin
文件 .数据是乱码的,但至少你可以阅读它,你可以复制以提取它 .