我想在我的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