【问题标题】:Updating datastore entities with appcfg.py renames primary key使用 appcfg.py 更新数据存储实体会重命名主键
【发布时间】:2011-02-26 14:25:48
【问题描述】:

我正在使用 appcfg.py 更新数据存储区中的实体。我上传了一个 csv:

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

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

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore


    【解决方案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

    【讨论】:

    • 这就是解决方案。但是需要注意的是,当您导入一组尚未在数据库中的数据时,您需要将导入转换注释掉,以便自动创建密钥。
    猜你喜欢
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多