我可以上传数据,但key_name为空。 如何使用CSV中的“id”作为数据存储区上的key_name?
我想使用'id'作为key_name,因为其他数据使用'id'作为外键。 我是Google App Engine的新手。
这是CSV数据。
"id","name"
"1","USA"
"2","France"
"3","Italy"
这是YAML
- model: model.testcountry.TestCountry
connector: csv
connector_options:
encoding: utf-8
columns: from_header
property_map:
- property: __key__
external_name: id
- property: name
external_name: name
P.S:我正在尝试将数据上传到当地环境。
更新
感谢您的帮助,我尝试了代码,但效果不佳。 结果很奇怪。
在终端窗口中,一条日志消息告诉我上传成功完成, 但是我在Google App Engine控制台中找不到任何记录(http:// localhost:8080 / _ah / admin / datastore)。数据存储区为空,没有记录。
终端窗口中的日志消息是
输入命令
appcfg.py upload_data --config_file=bulkloader.yaml --filename=testcountries.csv --kind=TestCountry --url=http://localhost:8080/remote_api --num_thread=1
结果消息
Uploading data records.
[INFO ] Logging to bulkloader/log.log
[INFO ] Throttling transfers:
[INFO ] Bandwidth: 250000 bytes/second
[INFO ] HTTP connections: 8/second
[INFO ] Entities inserted/fetched/modified: 20/second
[INFO ] Batch Size: 10
Please enter login credentials for localhost:8080
Email: xxxxxxx
Password for l:
[INFO ] Opening database: bulkloader-progress-20110609.003032.sql3
[INFO ] Connecting to localhost:8080/remote_api
[INFO ] Starting import; maximum 10 entities per post
..........
[INFO ] 100 entities total, 0 previously transferred
[INFO ] 100 entities (3362 bytes) transferred in 1.9 seconds
[INFO ] All entities successfully transferred
我也尝试了这个,但结果是一样的。终端表示成功,但在Google App Engine控制台中没有记录....
import_transform: int
PS:我正在使用Mac OS X Snow Leopard和Google App Engine启动器。
答案 0 :(得分:1)
试试这个:
- import: google.appengine.ext.bulkload.transform
- model: model.testcountry.TestCountry
connector: csv
connector_options:
encoding: utf-8
columns: from_header
property_map:
- property: __key__
external_name: id
import_transform: transform.create_foreign_key('TestCountry')
- property: name
external_name: name