我的遷移到hrd不適用於appspot.com。應用程序數據存儲在原始主/從(MS)和高複製數據存儲(hrd)中都有3種「數據類型」:Group
,引腳和日誌。每個Group
實體都有與其關聯的Pin實體和/或Log實體,但關聯不再在hrd中工作(這是所有遷移後都存活的),所以我的應用程序不再有效,我正在尋求幫助來恢復它。遷移到高複製數據存儲後,實體密鑰不同
下面我報告數據存儲中前兩個Pin
實體的實體鍵。我在每一對的較短鍵中插入了一些空格,以便排列鍵以查看它們的相似之處。請注意,所有鍵的開始和結束都是相似的,但MS與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
下面是用於添加保存Pin
如果母公司是Group
我的Python代碼。
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
與我的應用程序的問題是不是與實體按鍵,畢竟。相反,問題出在我嘗試處理javascript/html中有關程式化標記的另一個棄用的Google(地圖)功能。
我很抱歉這裏的噪音。這個問題是由於我嘗試作爲javascript/html模板中的解決方法而嘗試使用try..catch模式而導致無法使用/無法使用的。
編輯#1
這可能更適合於App Engine生產許可證,以便有人可以挖掘數據。我建議在這裏提交一個錯誤:https://code.google.com/p/googleappengine/issues/entry?template=Production%20issue –
它不是一個錯誤。在遷移指南中詳細記錄了手動保存的id不會遷移,因爲所有id將在hdr中更改。 –
關於我使用的過程,「手動保存」是什麼?我使用了appengine自動化過程(正如我們在此討論的那樣)[http://stackoverflow.com/questions/24768891/]。 – zerowords