Google App Engine'in Java uygulaması için Python App Engine'in _ah / admin eşdeğeri yok gibi görünüyor.
Veri deposuna göz atmamın manuel bir yolu var mı? Makinemde dosyalar nerede bulunur? (OS X'te Eclipse ile App Engine eklentisini kullanıyorum).
Google App Engine'in Java uygulaması için Python App Engine'in _ah / admin eşdeğeri yok gibi görünüyor.
Veri deposuna göz atmamın manuel bir yolu var mı? Makinemde dosyalar nerede bulunur? (OS X'te Eclipse ile App Engine eklentisini kullanıyorum).
Yanıtlar:
http://googleappengine.blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html : "Nihayet, geliştirici uygulama sunucusunun bir veri görüntüleyicisi var. Uygulamanızı yerel olarak başlatın ve tarayıcıdan * kontrol edin. "http://localhost:8888/_ah/admin
http://localhost:8000/datastore
* 1.7.7'den itibaren
Şu anda Java SDK için veri deposu görüntüleyicisi yok - bir sonraki SDK sürümünde gelecek. Bu arada, en iyi seçeneğiniz, veri deposu görüntüleme koduyla kendi yönetici arayüzünüzü yazmak veya bir sonraki SDK sürümünü beklemektir.
Java App Engine artık adresinden erişilebilen yerel bir veri deposu görüntüleyicisine sahip http://localhost:8080/_ah/admin
.
Windows + Eclipse ortamımda \ war \ WEB-INF \ appengine-generated \ local_db.bin üzerinde yerel veri depom var
Anladığım kadarıyla "protokol arabellekleri" adlı dahili format kullanıyor. Dosyayı insan tarafından okunabilir biçimde sunmak için harici araçlara sahip değilim.
Bunun gibi basit "görüntüleyici" kodu kullanıyorum:
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));
}
}
}
SDK'nın en yeni sürümlerinde ( 1.7.6+ ), dev sunucusunun yönetici kısmı yerini değiştirmiş olarak gelir
Sunucu çıktı günlükleri incelendiğinde, şu adresten erişilebilir olduğunu görebiliriz:
http://localhost:8000
Ve Datastore görüntüleyicisi:
http://localhost:8000/datastore
Google'ın yeni tasarım yönergelerine göre oldukça temiz görünüyor.
Google App Engines Datastore görüntüleyicisi referans verilen varlıkların koleksiyonlarını görüntülemeyi desteklemediğinden, Paul'ün sürümünü tüm alt varlıkları gösterecek şekilde değiştirdim:
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));
}
}
}
}
Boş koleksiyonlar / başvurulan varlıklar için hiçbir şeyin görüntülenmediğine dikkat edilmelidir.
Aç \war\WEB-INF\appengine-generated\local_db.bin
Dosyayı Notepad ++ gibi bir metin düzenleyiciyle .
Veriler karıştırılır, ancak en azından okuyabilir ve çıkarmak için kopyalayabilirsiniz.
Benim için düzeltme, aşağıdaki gcloud
komutu kullanarak giriş yapmaktı
gcloud auth application-default login