Google AppEngineのJava実装に対応するPythonAppEngineの_ah / adminに相当するものはないようです。
データストアを手動で閲覧する方法はありますか?私のマシンのどこにファイルがありますか?(OSX上のEclipseでAppEngineプラグインを使用しています)。
回答:
http://googleappengine.blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html: "ついに、開発アプリサーバーにデータビューアが追加されました。ローカルでアプリを起動し、ブラウザで*にチェックアウトしてください。」http://localhost:8888/_ah/admin
http://localhost:8000/datastore
* 1.7.7現在
現在、JavaSDK用のデータストアビューアはありません。次のSDKリリースで提供される予定です。それまでの間、最善の策は、データストア表示コードを使用して独自の管理インターフェースを作成するか、次のSDKリリースを待つことです。
Java App Engineには、でアクセスできるローカルデータストアビューアがあります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
メモ帳++などのテキストエディタでファイルを。
データはスクランブルされていますが、少なくともデータを読み取ることができ、コピーして抽出することができます。