gae가 매우 높은 ID를 모델에 할당합니다. 엔티티를 다운로드 할 때 항목 수가 매우 높습니다. 이들은 처음에 자동 생성되었습니다. csv로 다운로드하는 것은 문제가되지 않습니다. 그러나 기존 데이터를 삭제하고 동일한 데이터를 다시 업로드하면 예외가 발생합니다.GAE : 할당 된 최대 ID를 초과했습니다
Exceeded maximum allocated IDs
추적 :
Traceback (most recent call last):
File "/opt/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/pydevd.py", line 1397, in <module>
debugger.run(setup['file'], None, None)
File "/opt/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/pydevd.py", line 1090, in run
pydev_imports.execfile(file, globals, locals) #execute the script
File "/home/kave/workspace/google_appengine/appcfg.py", line 171, in <module>
run_file(__file__, globals())
File "/home/kave/workspace/google_appengine/appcfg.py", line 167, in run_file
execfile(script_path, globals_)
File "/home/kave/workspace/google_appengine/google/appengine/tools/appcfg.py", line 4247, in <module>
main(sys.argv)
File "/home/kave/workspace/google_appengine/google/appengine/tools/appcfg.py", line 4238, in main
result = AppCfgApp(argv).Run()
File "/home/kave/workspace/google_appengine/google/appengine/tools/appcfg.py", line 2396, in Run
self.action(self)
File "/home/kave/workspace/google_appengine/google/appengine/tools/appcfg.py", line 3973, in __call__
return method()
File "/home/kave/workspace/google_appengine/google/appengine/tools/appcfg.py", line 3785, in PerformUpload
run_fn(args)
File "/home/kave/workspace/google_appengine/google/appengine/tools/appcfg.py", line 3676, in RunBulkloader
sys.exit(bulkloader.Run(arg_dict))
File "/home/kave/workspace/google_appengine/google/appengine/tools/bulkloader.py", line 4379, in Run
return _PerformBulkload(arg_dict)
File "/home/kave/workspace/google_appengine/google/appengine/tools/bulkloader.py", line 4244, in _PerformBulkload
loader.finalize()
File "/home/kave/workspace/google_appengine/google/appengine/ext/bulkload/bulkloader_config.py", line 384, in finalize
self.increment_id(high_id_key)
File "/home/kave/workspace/google_appengine/google/appengine/tools/bulkloader.py", line 1206, in IncrementId
unused_start, end = datastore.AllocateIds(high_id_key, max=high_id_key.id())
File "/home/kave/workspace/google_appengine/google/appengine/api/datastore.py", line 1965, in AllocateIds
return AllocateIdsAsync(model_key, size, **kwargs).get_result()
File "/home/kave/workspace/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 612, in get_result
return self.__get_result_hook(self)
File "/home/kave/workspace/google_appengine/google/appengine/datastore/datastore_rpc.py", line 1863, in __allocate_ids_hook
self.check_rpc_success(rpc)
File "/home/kave/workspace/google_appengine/google/appengine/datastore/datastore_rpc.py", line 1236, in check_rpc_success
raise _ToDatastoreError(err)
google.appengine.api.datastore_errors.BadRequestError: Exceeded maximum allocated IDs
보통 내 아이디의 주위 26002
하지만 며칠 전부터 새로운 아이디의이 4948283361329150
만큼 크다. 이것들은 현재 문제를 일으키고 있습니다. (내가 값을 낮추기 위해 그것들을 변경한다면, 그것들은 모두 괜찮지 만, 처음에는이 id들을 생성하지 않았다.) 왜 GAE는 자체적으로 생성 된 id에 그러한 문제를 가지고 있는가?
많은 감사
몇 가지 사항을 명확히 해주십시오 : 1, 데이터를 '_key_'와 함께 내보내고이 데이터를 다시 앱 엔진으로 가져 오기 전에 기존 앱 엔진 데이터를 삭제 한 다음 csv에 저장된 ID를 사용하여 다시 추가합니다. 수정 된 데이터? 2, 당신은 가져 오기 변환을 사용하고 있습니까 :'transform.create_foreign_key (Kind)'? –
안녕하세요 tony, 예. 키와 함께 데이터를 내보내고 gae로 데이터를 가져 오기 전에 csv에 저장된 ID를 사용하여 기존 데이터를 삭제합니다 (gae에서 첫 번째로 생성됨). – Houman