85

Google App Engine の Java 実装には、Python App Engine の _ah/admin に相当するものはないようです。

データストアを手動で参照する方法はありますか? ファイルはマシンのどこにありますか? (OS X の Eclipse で App Engine プラグインを使用しています)。

4

7 に答える 7

111

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 以降

于 2009-07-14T13:33:38.357 に答える
40

現在、JavaSDK用のデータストアビューアはありません。次のSDKリリースで提供される予定です。それまでの間、最善の策は、データストア表示コードを使用して独自の管理インターフェースを作成するか、次のSDKリリースを待つことです。

Java App Engineに、でアクセスできるローカルデータストアビューアが追加されましたhttp://localhost:8080/_ah/admin

于 2009-07-09T12:46:12.047 に答える
6

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));
        }
    }
}
于 2009-07-09T10:10:12.717 に答える
1

Google App Engines Datastore ビューアは参照エンティティのコレクションの表示をサポートしていないため、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));
            }
        }
    }
}

空のコレクション/参照エンティティには何も表示されないことに注意してください。

于 2012-08-20T19:08:15.850 に答える
1

Notepad \war\WEB-INF\appengine-generated\local_db.bin++ などのテキスト エディターでファイルを開きます。

データはスクランブルされていますが、少なくとも読み取ることはでき、コピーして抽出することはできます。

于 2013-11-15T21:49:42.393 に答える
0

私にとっての修正は、以下のgcloudコマンドを使用してログインすることでした

gcloud auth application-default login
于 2018-12-25T04:20:18.193 に答える