我的应用程序使用
Django non-rel
. 我没有进入模型的机会。
我有我的
bulkloader.yaml
文件自动生成
appcfg.py create_bulkloader_config
.
问题是,实体的数字标识正作为字符串键名导入。因此,如果我导出int id为的实体,例如,
“62”
它以字符串关键字的名称导入实体。
“61”
这把Django搞糟了。
启示录:
property_map:
- property: __key__
external_name: key
export_transform: transform.key_id_or_name_as_string
我正在尝试使用Bulkloader设置下载/上传OD数据,我想让数据具有易于理解的格式(如.csv)---所以使用
bulkloader.py --dump (...)
不是一个可行的选项,因为它给了我一个sqlite3文件,这些文件将实体内容作为一行进行酸洗。
编辑
我试着按照Nick的建议去做,我得到了一个例外:
ErrorOnTransform: Numeric keys are not supported on input at this time.
这是否意味着我必须坚持bulkloader.py(使用werid sqlite格式)或者我弄错了什么?;)
变压器报头:
- kind: auth_user
connector: csv
connector_options:
encoding: utf-8
skip_import_header_row: True
print_export_header_row: True
property_map:
- property: __key__
external_name: key
export_transform: transform.key_id_or_name_as_string
import_transform: transform.create_foreign_key('auth_user', key_is_id=True)
整个StackTrace:
Traceback (most recent call last):
File "/opt/google/appengine/google/appengine/tools/adaptive_thread_pool.py", line 150, in WorkOnItems
status, instruction = item.PerformWork(self.__thread_pool)
File "/opt/google/appengine/google/appengine/tools/bulkloader.py", line 693, in PerformWork
transfer_time = self._TransferItem(thread_pool)
File "/opt/google/appengine/google/appengine/tools/bulkloader.py", line 848, in _TransferItem
self.content = self.request_manager.EncodeContent(self.rows)
File "/opt/google/appengine/google/appengine/tools/bulkloader.py", line 1269, in EncodeContent
entity = loader.create_entity(values, key_name=key, parent=parent)
File "/opt/google/appengine/google/appengine/ext/bulkload/bulkloader_config.py", line 385, in create_entity
return self.dict_to_entity(input_dict, self.bulkload_state)
File "/opt/google/appengine/google/appengine/ext/bulkload/bulkloader_config.py", line 131, in dict_to_entity
instance = self.__create_instance(input_dict, bulkload_state_copy)
File "/opt/google/appengine/google/appengine/ext/bulkload/bulkloader_config.py", line 209, in __create_instance
'Numeric keys are not supported on input at this time.')