2010-07-15 2 views
3

나는 이클립스에서 GAE를 사용하는 응용 프로그램에서 작업하고 있으며 많은 데이터 개체가 있습니다. 때로는 더 많은 데이터를 저장할 수 있도록 유형을 변경해야합니다 (예 : String ->Text).GAE 로컬 객체 저장소의 데이터 변경

데이터/객체 저장소에서 일괄 업데이트를 수행하는 가장 빠른 방법은 무엇입니까? Java 코드를 작성하여 각 객체를 반복 할 수 있다는 것을 알고 있지만 더 쉬운 방법은 있을까요?

답변

3

일반적으로 저장소를 반복하고 수동으로 데이터를 변경하는 것 외에 다른 방법은 없습니다. 그렇지 않으면 데이터 스토어에 액세스 할 수 없습니다. 그러나 SDK 1.3.3 버전부터 SQLite를 데이터 저장소 백엔드로 사용할 수 있습니다. 활성화하려면 플래그를 설정하십시오. --use_sqlite = true

그러면 SQLite 파일을 찾아야하며 SQLite 클라이언트를 사용하여 데이터를 조작 할 수 있어야합니다.

업데이트 : Nick Johnson이 지적했듯이 SQLite 지원은 Python SDK에서만 사용할 수 있으며 데이터가 인코딩되므로 변경 내용에 따라 테이블 내용을 직접 편집하는 작업이 어렵습니다. 포스터가 쉬운 Java 기반 솔루션을 찾고 있다면이 대답은 무효화됩니다./

+0

잘못되었습니다. SQLite 백엔드는 여전히 데이터를 인코딩 된 프로토콜 버퍼 형식으로 저장합니다. 이론적으로 데이터를 직접 업데이트하기 위해 무언가를 쓸 수도 있지만, 불필요하게 복잡 할 수 있습니다. 또한 Asker는 Java SDK를 참조하고 SQLite 백엔드는 Python SDK에만 적용됩니다. –

+0

1.3.3 SDK가 SQLite 백엔드를 지원한다는 발표를 기반으로 필자의 대답이 희망적인 생각 이었음을 인정합니다. Nick은 실제로이 답변에 가장 적합한 사람 중 하나입니다. 내 대답을 업데이 트하고 자신을 upvote :) –

1

가장 적합한 옵션은 Java와 Python 버전이 모두 새로 출시 된 appengine-mapreduce library입니다.

String에서 Text로 변환하는 경우 오래된 엔티티를 수동으로 업데이트하거나 업데이트 할 필요가 없습니다. 다음에 앱이 다음에 작성할 때 수정되며 여전히 올바르게 작동합니다. 그 동안에.

+0

그것은 나를 위해 작동하지 않았다, 나는 엔티티를 업데이 트하고 예외가 발생했습니다. – Jacob

+0

도움을 받으려면 그 이상의 세부 정보가 필요합니다. 예외는 무엇입니까? 어디에? –

관련 문제