hsp 로의 마이 그 레이션이 appspot.com에서 작동하지 않습니다. 앱 데이터 저장소에는 원래 마스터/슬레이브 (MS)와 높은 복제 데이터 스토어 (hrd)에 모두 3 종류의 데이터가 있습니다 (Group
, 핀 및 로그). 각 Group
엔티티는 Pin 엔티티 및/또는 로그 엔티티와 연관되어 있지만 연관성은 hrd에서 더 이상 작동하지 않으므로 (마이그레이션에서 유지되는 모든 것), 내 앱이 더 이상 작동하지 않으며이를 복구하는 데 도움이 필요합니다.높은 복제 데이터 저장소로 마이그레이션 한 후 엔터티 키가 다릅니다
아래 데이터 스토어의 처음 두 Pin
엔티티에 대한 엔티티 키를보고합니다. 각 쌍의 짧은 키에 몇 개의 공백을 삽입하여 키를 정렬하여 유사점을 확인했습니다. 모든 키가 비슷하게 시작되고 끝나지만 MS vs hrd는 다릅니다.
Decoded entity key: Group: name=250cc > Pin: id=1
Entity #1 MS key: ah NzaW1wbGlmeWNvbm5lY3Rpb25zchkLEgVHcm91cCIFMjUwY2MMCxIDUGluGAEM
Entity #1 hrd key: ahlzfnNpbXBsaWZ5Y29ubmVjdGlvbnMtaHJkchkLEgVHcm91cCIFMjUwY2MMCxIDUGluGAEM
Decoded entity key: Group: name=250cc > Pin: id=5001
Entity #2 MS key: ah NzaW1wbGlmeWNvbm5lY3Rpb25zchoLEgVHcm91cCIFMjUwY2MMCxIDUGluGIknDA
Entity #2 hrd key: ahlzfnNpbXBsaWZ5Y29ubmVjdGlvbnMtaHJkchoLEgVHcm91cCIFMjUwY2MMCxIDUGluGIknDA
To view the app yourself이 링크를 사용하십시오. "Playground"라는 이름의 Group
이 표시되며 URL에서 어떻게 호출되는지 확인할 수 있습니다. 그러나 표시되는 유일한 마커 (지도 핀)는 hrd로 마이그레이션 한 이후에 추가 된 마커입니다.
편집 # 0
다음은 부모가 Group
인 Pin
을 저장 추가 내 파이썬 코드입니다.
elif action == "add":
pin = Pin(parent=place)
pin.name = self.request.get('details')
pin.lat = float(self.request.get('lat'))
pin.lng = float(self.request.get('lng'))
pin.category = int(self.request.get('category'))
pin.label = self.request.get('label')
new_id = pin.put()
self.response.out.write(new_id)
그리고 아래는 Pin
의 클래스 정의입니다.
class Pin(db.Model):
date = db.DateTimeProperty(auto_now_add=True)
lat = db.FloatProperty()
lng = db.FloatProperty()
name = db.StringProperty()
cornerColor = db.StringProperty(default='ffffff')
height = db.IntegerProperty(default=32)
label = db.StringProperty(default='')
labelColor = db.StringProperty(default='000000')
labelSize = db.IntegerProperty(default=2)
primaryColor = db.StringProperty(default='ff0000')
shadowColor = db.StringProperty(default='000000')
shape = db.StringProperty(default='circle')
strokeColor = db.StringProperty(default='000000')
width = db.IntegerProperty(default=32)
category = db.IntegerProperty(default=0)
scategory = db.StringProperty()
logindex = db.IntegerProperty(default=0)
imageindex = db.IntegerProperty(default=0)
deleteRequested = db.BooleanProperty(default=False)
편집 # 0
편집 # 1
내 응용 프로그램의 문제는 결국, 엔티티 키가 아닙니다. 대신, 문제는 내 자바 스크립트/html에 양식화 된 마커에 관한 다른 비추천 Google (지도) 기능을 처리하는 방식으로 발생합니다.
여기에 불편을 끼쳐 드려 죄송합니다. 문제는 javascript/html 템플릿에서 해결 방법으로 시도한 try..catch 패턴을 사용하여 내 무능력/부적합 함으로 인해 발생했습니다.
인코딩 된 키 문자열을 변경할 것으로 예상된다 1
이것은 App Engine 제작 티켓에 적합하므로 다른 사람이 데이터를 파헤칠 수 있습니다. 여기에 버그를 제출하는 것이 좋습니다. https://code.google.com/p/googleappengine/issues/entry?template=Production%20issue –
버그가 아닙니다. 수동으로 저장 한 ID는 마이그레이션 가이드에서 잘 설명되어 있으므로 모든 ID가 hdr에서 변경되므로 마이그레이션되지 않습니다. –
내가 사용한 프로세스에 대해 "수동으로 저장 한"것은 무엇입니까? appengine 자동화 프로세스를 사용했습니다 (SO에서 여기서 논의했듯이) [http://stackoverflow.com/questions/24768891/]. – zerowords