Het lijkt erop dat er geen equivalent is van de _ah/admin van Python App Engine voor de Java-implementatie van Google App Engine.
Is er een handmatige manier om door de datastore te bladeren? Waar zijn de bestanden te vinden op mijn machine? (Ik gebruik de App Engine-plug-in met Eclipse op OS X).
Antwoord 1, autoriteit 100%
http://googleappengine. blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html: “Eindelijk heeft de dev-appserver een dataviewer. Start uw app lokaal en laat uw browser http://localhost:8888/_ah/admin
http://localhost:8000/datastore
* om het uit te proberen.”
* vanaf 1.7.7
Antwoord 2, autoriteit 36%
Er is momenteel geen datastore-viewer voor de Java SDK – een zou in de volgende SDK-release moeten komen. In de tussentijd kun je het beste je eigen beheerdersinterface schrijven met datastore-weergavecode – of wachten op de volgende SDK-release.
Java App Engine heeft nu een lokale datastore-viewer, toegankelijk via http://localhost:8080/_ah/admin
.
Antwoord 3, autoriteit 5%
Ik heb een lokale datastore in mijn Windows+Eclipse-omgeving op \war\WEB-INF\appengine-generated\local_db.bin
Voor zover ik heb begrepen, gebruikt het een intern formaat met de naam “protocolbuffers”. Ik heb geen externe tools om het bestand in een voor mensen leesbaar formaat te presenteren.
Ik gebruik een eenvoudige “viewer”-code zoals deze:
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));
}
}
}
Antwoord 4, autoriteit 2%
In de nieuwste versies van de SDK (1.7.6+) wordt het beheerdersgedeelte van de ontwikkelserver meegeleverd en is de locatie gewijzigd
Als we de logboeken van de serveruitvoer analyseren, kunnen we zien dat deze toegankelijk is op:
http://localhost:8000
En de Datastore-viewer:
http://localhost:8000/datastore
Ziet er best netjes uit – volgens de nieuwe ontwerprichtlijnen van Google.
Antwoord 5
Omdat de Google App Engines Datastore-viewer geen ondersteuning biedt voor het weergeven van verzamelingen van entiteiten waarnaar wordt verwezen, heb ik de versie van Paul gewijzigd om alle onderliggende entiteiten weer te geven:
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));
}
}
}
}
Opgemerkt moet worden dat er niets wordt weergegeven voor lege verzamelingen/verwezen entiteiten.
Antwoord 6
Open het bestand \war\WEB-INF\appengine-generated\local_db.bin
met een teksteditor, zoals Notepad++.
De gegevens zijn vervormd, maar u kunt ze tenminste lezen en kopiëren om ze uit te pakken.
Antwoord 7
Voor mij was de oplossing om in te loggen met het onderstaande gcloud
-commando
gcloud auth application-default login