2011-02-26 78 views
1

我正在使用appcfg.py更新数据存储中的实体。我上传CSV:使用appcfg.py更新数据存储实体重命名主键

Name,Type 
Jim,2 
Bob,4 

我再看看在数据存储,并注意这些实体的主键字段的形式为“ID =#”的。我然后使用appcfg.py下载此数据存储类型,它归结为:

Name,Type,id 
Jim,2,10001 
Bob,4,10002 

我修改类型字段,并重新上传。结果是重复的一组条目,其中主键的形式为“name =#”。通过我的config.yaml看,这是关键中的相关条目:

property_map: 
    - property: __key__ 
     external_name: id 
     export_transform: transform.key_id_or_name_as_string 

我只是想更新现有数据存储实体,我如何做到这一点?

回答

1

尝试:

- property: __key__ 
    external_name: key 
    export_transform: transform.key_id_or_name_as_string 
    import_transform: transform.create_foreign_key('YourKind', key_is_id=True) 

http://groups.google.com/group/google-appengine/browse_thread/thread/3f211d42cf544c1a/4659a30b9380ab8a?lnk=gst&q=key_id_or_name_as_string#4659a30b9380ab8a

+1

这是解决方案。但是,应该注意的是,当您导入一组尚未在数据库中的数据时,您需要对导入转换进行注释,以便自动创建密钥。 – 2011-02-26 20:32:12