태그 보관물: google-app-engine

google-app-engine

로컬 Java App Engine 데이터 저장소를 탐색하는 방법은 무엇입니까? 것 같습니다. 데이터 스토어를 수동으로

Google App Engine의 자바 구현을위한 Python App Engine의 _ah / admin에 해당하는 것은없는 것 같습니다.

데이터 스토어를 수동으로 탐색 할 수있는 방법이 있습니까? 내 컴퓨터에서 찾을 수있는 파일은 어디에 있습니까? (OS X에서 Eclipse와 함께 App Engine 플러그인을 사용하고 있습니다.)



답변

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 기준


답변

현재 Java SDK 용 데이터 저장소 뷰어는 없으며 다음 SDK 릴리스에서 제공 될 예정입니다. 그 동안 가장 좋은 방법은 데이터 저장소보기 코드를 사용하여 고유 한 관리 인터페이스를 작성하거나 다음 SDK 릴리스를 기다리는 것입니다.

이제 Java App Engine에 .NET에서 액세스 할 수있는 로컬 데이터 저장소 뷰어가 있습니다 http://localhost:8080/_ah/admin.


답변

\ war \ WEB-INF \ appengine-generated \ local_db.bin의 Windows + Eclipse 환경에 로컬 데이터 저장소가 있습니다.

내가 이해하는 한 “프로토콜 버퍼”라는 내부 형식을 사용합니다. 사람이 읽을 수있는 형식으로 파일을 표시 할 외부 도구가 없습니다.

다음과 같은 간단한 “뷰어”코드를 사용하고 있습니다.

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 ( 1.7.6+ )에서 개발 서버의 관리자 부분은 위치가 변경되었습니다.

서버 출력 로그를 분석하면 다음 위치에서 액세스 할 수 있음을 알 수 있습니다.

http://localhost:8000

그리고 Datastore 뷰어 :

http://localhost:8000/datastore

Google의 새로운 디자인 지침에 따르면 꽤 깔끔해 보입니다.


답변

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));
            }
        }
    }
}

빈 컬렉션 / 참조 된 엔터티에 대해서는 아무것도 표시되지 않습니다.


답변

열기 \war\WEB-INF\appengine-generated\local_db.bin메모장 ++과 같은 텍스트 편집기로 파일을.

데이터는 스크램블되지만 적어도 읽을 수 있으며 복사하여 추출 할 수 있습니다.


답변

나를 위해 수정은 아래 gcloud명령을 사용하여 로그인하는 것이 었습니다.

gcloud auth application-default login