我試圖將模型從一個實體複製到另一個實體,保留其自動生成的ID。我使用下面的代碼:'生產中超出最大分配ID'GAE
key = db.Key.from_path('TargetEntity', source.key().id())
db.allocate_id_range(app, start = source.key().id(), end = source.key().id())
TargetEntity(key = key).put()
這工作正常dev_appserver
,但在生產環境中運行這個時候,allocate_id_range
拋出「超出最大分配的ID」。它試圖分配的ID是5093058741796864L
。
有關StackOverflow的其他問題提到了這一點,它們要麼開始使用它們自己的ID生成器(這不是解決方案),要麼是由於多年前使用新的ID生成器時出現異常高ID的問題似乎適用了)。
當我使用'db'時,手動生成的ID有一些問題,但當我切換到'ndb'時,它們消失了。無論如何,切換到'ndb'是一個好主意。 –