Parece que no hay un equivalente de _ah / admin de Python App Engine para la implementación de Java de Google App Engine.
¿Existe alguna forma manual de navegar por el almacén de datos? ¿Dónde se encuentran los archivos en mi máquina? (Estoy usando el complemento de App Engine con Eclipse en OS X).
java
google-app-engine
google-cloud-datastore
Jim Blackler
fuente
fuente
Actualmente no hay un visor de almacén de datos para el SDK de Java; debería haber uno en la próxima versión del SDK. Mientras tanto, lo mejor que puede hacer es escribir su propia interfaz de administración con el código de visualización del almacén de datos, o esperar a la próxima versión del SDK.Java App Engine ahora tiene un visor de almacén de datos local, accesible en
http://localhost:8080/_ah/admin
.fuente
Tengo un almacén de datos local en mi entorno Windows + Eclipse en \ war \ WEB-INF \ appengine-generate \ local_db.bin
Por lo que tengo entendido, utiliza un formato interno llamado "búferes de protocolo". No tengo herramientas externas para presentar el archivo en formato legible por humanos.
Estoy usando un código de "visor" simple como este:
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)); } } }
fuente
En las versiones más recientes del SDK ( 1.7.6+ ), la parte de administración del servidor de desarrollo viene con un cambio de ubicación
Analizando los registros de salida del servidor podemos ver que es accesible en:
http://localhost:8000
Y el visor de Datastore :
http://localhost:8000/datastore
Se ve bastante bien, de acuerdo con las nuevas pautas de diseño de Google.
fuente
Debido a que el visor del almacén de datos de Google App Engines no admite la visualización de colecciones de entidades referenciadas, modifiqué la versión de Paul para mostrar todas las entidades descendientes:
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)); } } } }
Cabe señalar que no se muestra nada para colecciones vacías / entidades referenciadas.
fuente
Abra el
\war\WEB-INF\appengine-generated\local_db.bin
archivo con un editor de texto, como Notepad ++.Los datos están codificados, pero al menos puede leerlos y copiarlos para extraerlos.
fuente
Para mí, la solución fue hacer el inicio de sesión usando el siguiente
gcloud
comandogcloud auth application-default login
fuente