我想在我的django-nonrel項目中使用appengine bulkloader,如http://thomas.broxrost.com/category/google-app-engine/和http://blog.suinova.com/2009/03/tutorial-on-bulkloading-data-onto-app.html中建議的那樣。 但它給錯誤:沒有名爲google.appengine.ext.webapp的模塊。我認爲這是因爲Django-nonrel,我無法訪問谷歌webapp.Correct我,如果我錯了。此外,似乎我的模型字段也與google bulkloader支持的不同。 讓我知道是否有人知道任何其他的選擇。任何在線文件或指針都歡迎:-)帶django-nonrel的Appengine Bulkloader
0
A
回答
2
剛剛看到您的文章。我可以在我的django-nonrel項目中使用appengine bulkloader。
有幾件事情需要注意:
在我需要bulkloaded的車型,我有手動設置主鍵放置「primary_key =真」在場上我想作爲一個主要的使用鍵。這使得Django使用主鍵字段的key_name創建模型,並且可以確保您創建的模型具有已知的主鍵。 (而不是讓自動pk字段控制,然後pk是appengine的隨機ID字段)
在您的bulkloader.yaml文件中,使用'field_id'引用您的外鍵屬性字段。 django構造db模式的方式是外鍵字段實際上與'_id'相關聯存儲。不要嘗試使用import_transform和export_transform把你的領域到AppEngine上的「鑰匙」場......
這裏是我有什麼,目前工作的例子。
class Team(models.Model):
appengine_key = models.CharField(max_length=100, primary_key=True)
abbr = models.CharField(max_length=3)
name = models.CharField(max_length=10)
division = models.ForeignKey(Division, related_name="teams")
is_active = models.BooleanField(default=True)
created_time = models.DateTimeField(auto_now_add=True)
updated_time = models.DateTimeField(auto_now=True)
我對這個領域bulkloader.yaml聲明如下所示:
python_preamble:
- import: google.appengine.ext.bulkload.transform
- import: google.appengine.ext.db
- import: re
- import: base64
- import: datetime
transformers:
- kind: app_team
connector: csv
connector_options:
encoding: utf-8
columns: from_header
property_map:
- property: __key__
external_name: appengine_key
export_transform: transform.key_id_or_name_as_string
- property: abbr
external_name: abbr
- property: name
external_name: name
- property: division_id
external_name: division
- property: is_active
external_name: is_active
import_transform: transform.none_if_empty(bool)
- property: created_time
external_name: created_time
import_transform: transform.import_date_time('%m/%d/%Y %H:%M:%S')
export_transform: transform.export_date_time('%m/%d/%Y %H:%M:%S')
- property: updated_time
external_name: updated_time
import_transform: transform.import_date_time('%m/%d/%Y %H:%M:%S')
export_transform: transform.export_date_time('%m/%d/%Y %H:%M:%S')
然後,您的CSV文件只需要你在「EXTERNAL_NAME」聲明中引用他們有字段標題,並相應的數據來裝載!
你可以確保它運行類似於下面的內容適用於當地的環境,同時當地的runserver運行:
python2.5 /usr/local/bin/appcfg upload_data --config_file=app/bulkloader.yaml --filename=app/fixtures/teams.csv --kind=app_team --url=http://localhost:8080/_ah/remote_api app
相關問題
- 1. Google AppEngine Datastore Bulkloader在http代理後面
- 2. Google AppEngine Bulkloader高複製數據延遲
- 3. AppEngine bulkloader export自定義屬性
- 4. BulkLoader -export_transform
- 5. 使用開發服務器的Appengine BulkLoader問題
- 6. AppEngine Bulkloader在導入過程中生成數據
- 7. AppEngine bulkloader通過設置key_name上傳實體
- 8. AppEngine bulkloader,高複製存儲和python27運行時
- 9. 如何在使用bulkloader時在appengine中填充「ID」字段?
- 10. 使用Google AppEngine BulkLoader導入GeoPt數據YAML
- 11. bulkloader不導入ndb.model
- 12. 在appengine上的履帶
- 13. Bulkloader工具從AppEngine數據存儲下載CSV的替代品是什麼?
- 14. App Engine Bulkloader
- 15. bulkloader Listproperty utf8
- 16. 帶有PHP和BulkLoader的Flex 4 - 資產被刪除
- 17. 帶Google身份驗證的Appengine ACL
- 18. Google的Volley lib帶有Authenticated Appengine端點?
- 19. AppEngine帶時區的java.util.Date在Struts2中
- 20. 使用帶DART的Appengine渠道API
- 21. 帶有appengine的UTF-8響應編碼
- 22. 帶任務隊列的AppEngine超時
- 23. Google App Engine Bulkloader深卡
- 24. Bulkloader CSV尺寸誤差
- 25. 使用bulkloader上傳數據
- 26. Bulkloader導入整數列表
- 27. 如何上傳日期bulkloader?
- 28. 動作腳本3 Bulkloader類
- 29. 如何使用的oauth2在bulkloader
- 30. 日期時間的App Engine bulkloader轉換
好Aaron..Thanks您answer..its有一段日子,我等待這個:-)將嘗試它並儘快更新。 – SRC 2011-07-19 12:44:54