Как загружать данные с помощью key_name загрузчиком Google App Engine

Я могу загрузить данные, но key_name пуст. Как я могу использовать id в CSV в качестве ключевого_имя в хранилище данных?

Мне нравится использовать "id" в качестве ключевого_имя, потому что другие данные используют "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.

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

licensed under cc by-sa 3.0 with attribution.