https://cloud.google.com/appengine/docs/go/tools/remoteapi
2. bulkloader.yaml のひな形を作る
$ appcfg.py create_bulkloader_config --filename=bulkloader.yaml --url=http://localhost:8080/_ah/remote_api --application=dev~APPLICATION_ID .
3. bulkloader.yaml を編集する
- connector と connector_options を埋める
- property_map を編集する
- external_name が CSV のカラムと一致しているか確認する
- __key__ が適切かチェックする。値は import 時は key name に、export 時は Key オブジェクトになる
- import 時に Key を自動生成し、export 時に省略したいなら、__key__ property を property map から削除する
- model クラスのモジュールがあるときは、python_preamble: に追加し、kind property を model: クラス に変更する
- python_preamble:
- - import: base64
- - import: re
- - import: google.appengine.ext.bulkload.transform
- - import: google.appengine.ext.bulkload.bulkloader_wizard
- - import: google.appengine.ext.db
- - import: google.appengine.api.datastore
- - import: google.appengine.api.users
- transformers:
- - kind: Greeting
- connector: csv
- connector_options:
- encoding: utf-8
- columns: from_header
- property_map:
- - property: Author
- external_name: Author
- import_transform: transform.none_if_empty(unicode)
- - property: Content
- external_name: Content
- import_transform: transform.none_if_empty(unicode)
- - property: Date
- external_name: Date
- import_transform: transform.import_date_time('%Y/%m/%d %H:%M:%S')
- export_transform: transform.export_date_time('%Y/%m/%d %H:%M:%S')
参考: Where are the reference pages of the Google App Engine bulkloader transform?
4 ダウンロードする
$ appcfg.py download_data --config_file=bulkloader.yaml --url=http://localhost:8080/_ah/remote_api --filename=download.csv --kind=Greeting
- $ cat download.csv
- Content,Date,Author
- "A,B,C",2015/02/09 03:36:21,test@example.com
- fuga,2015/02/09 02:07:57,test@example.com
- はろーわーるど,2015/02/09 03:21:49,test@example.com
- hoge,2015/02/09 02:07:54,test@example.com
- Hello World,2015/02/09 03:21:44,test@example.com
- what's up,2015/02/09 03:36:01,test@example.com
毎回メールアドレスが聞かれるのがめんどいときは --email=EMAIL をつけるとよい