2012-11-26 111 views
0

語境:下載中心App Engine的NDB實體/批量上傳

我的模型類從基類繼承:

class BaseModel(ndb.model): 
    # commom fields and methods 

class SpecificModel(BaseModel): 
    # specific fields and methods 

問題:

我想用導出的SpecificModel實體appengine bulkuploader service

我已經定義配置文件(data_loader.py):

import sys 
sys.path.append('.') ## this is to ensure that it finds the file 'models.py' 
from google.appengine.ext import ndb 
from google.appengine.tools import bulkloader 
from models import * 

class SpecificModelExporter(bulkloader.Exporter): 
    def __init__(self): 
    bulkloader.Exporter.__init__(self, 'SpecificModel', 
           [('fieldOne', str, None), 
            ('fieldTwo', str, None) 
           ]) 

    exporters = [ SpecificModelExporter ] 

我用下面的命令來下載數據:

appcfg.py download_data --config_file=data_loader.py --filename=data.csv --kind=SpecificModel --url=http://url.appspot.com/_ah/remote_api 

當我嘗試下載我得到的數據以下錯誤

google.appengine.ext.db.KindError: No implementation for kind 'SpecificModel' 

任何線索?

回答

2

看一看在source code

您的模型將在GetImplementationClass通過

implementation_class = db.class_for_kind(kind_or_class_key) 

被擡起頭來但db車型註冊表將不包括已經定義的任意ndb模型。在ndb.Model._kind_map中創建了一個類似的註冊表,並且您已經定義的任何db模型都不會在那裏找到。

注:as I can tell沒有相應的問題/特徵請求詢問在批量載入ndb支持或等效ndb批量載入。這可能是值得提交一個並主演它。

+0

+1 - 也不會想到這一點:) – RocketDonkey

+0

感謝我提交的http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=224 –

+0

大的問題!我只是可能會採取這種修復:) – bossylobster

相關問題