I don't know if you can help but I wonder if you’ve tried doing a bulk
load on existing tables with a relation. I’ve tried but come up
against a problem . I used the bulkloader example.
This is my schema.
Member — Running club member
Race — a race event racename,date, distance
Runner — is child of Member and Race being the time for the race taken
by the member.
-- These are my models
from google.appengine.ext import webapp
from google.appengine.ext import db
class Member(db.Model):
memberid = db.StringProperty()
name = db.StringProperty()
category = db.StringProperty()
currentMember = db.StringProperty()
member = Member()
member.put()
class Race(db.Model):
raceid = db.StringProperty()
name = db.StringProperty()
date = db.StringProperty()
distance = db.StringProperty()
units = db.StringProperty()
race = Race()
race.put()
class Runner(db.Model):
racerunner = db.StringProperty()
raceid = db.StringProperty()
runnerid = db.StringProperty()
runnername = db.StringProperty()
race = db.ReferenceProperty(reference_class=Race)
member = db.ReferenceProperty(reference_class=Member)
time = db.StringProperty()
position = db.StringProperty()
category = db.StringProperty()
WAVA = db.StringProperty()
pace = db.StringProperty()
notes = db.StringProperty()
runner = Runner()
runner.put()
#This is my data to load
#Runner.csv
00310017,0031,0017,Bil Salters,2:32:05,M40,94,59.87,9:30,NOMATCH
00310016,0031,0016,Iian Sallis,2:40:26,SM,103,57.59,10:01,NOMATCH
00320018,0032,0018,Jon Church,35:02,SM,67.34,6:29,2nd M40
00320019,0032,0019,Sarah Church,51:39,F45,105,51.26,9:33,3rd F45
#member.csv
0017,Bil Salters,M40,Yes
0016,Iian Sallis,SM,No
0018,Jon Church,SM,Yes
0019,Sarah Church,F45,No
#race.csv
0031,North Mids XC Race 3 (men) ,13-01-2007,6.5,miles
0032,Bedford Half Marathon ,10-12-2006,13.1,miles
I tried to load Runner with this:
#myRunnerloader.py
from google.appengine.ext import bulkload
from google.appengine.api import datastore_types
from google.appengine.api import datastore_entities
from google.appengine.ext import search
class RunnerLoader(bulkload.Loader):
def __init__(self):
# Our 'Race' entity contains an id name string date distance and
units
bulkload.Loader.__init__(self, 'Runner',
[('racerunner', str),
('raceid', str),
('runnerid', str),
('runnername', str),
('time', str),
('position', str),
('category', str),
('WAVA', str),
('pace', str),
('notes', str),
])
def HandleEntity(self, entity):
runner = datastore_entities.Runner(racerunner)
runner.update(entity)
raceid = runner['raceid']
runnerid = runner['runnerid']
if raceid:
race = datastore.Query('Race',{'raceid': raceid}).Get(1)
if not race:
race = [datastore_entities.Race(raceid)]
datastore.Put(race[0])
runner['race'] = race[0].key()
if runnerid:
member = datastore.Query('Member',{'runnerid':
runnerid}).Get(1)
if not member:
member = [datastore_entities.Member(runnerid)]
datastore.Put(member[0])
['member'] = member[0].key()
return runner
if __name__ == '__main__':
bulkload.main(RunnerLoader())
#And this cmd command on XP
runnercd C:\Google_apps
python "C:\Program Files\Google\google_appengine\tools
\bulkload_client.py"
--filename C:\Google_apps\data\Runnerfull.csv
--kind Runner
--url http://127.0.0.1:8080/runnerload
And I get this error:
C:\Documents and Settings\Alan Maplethorpe>cd C:\Google_apps
C:\Google_apps>python "C:\Program Files\Google\google_appengine\tools
\bulkload_client.py" --filename C:\Google_apps\data\Runner.csv --kind
Runner --url http://
127.0.0.1:8080/runnerload
INFO 2008-10-16 14:05:35,157 bulkload_client.py] Starting import;
maximum 10 entities per post
INFO 2008-10-16 14:05:35,167 bulkload_client.py] Importing 4
entities in 260 bytes
ERROR 2008-10-16 14:05:36,178 bulkload_client.py] An error occurred
while importing: Received code 400: Bad Request
Loading from line 1...error:
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\ext
\bulkload\__init__.py", line 376, in LoadEntities
new_entities = loader.CreateEntity(columns, key_name=key_name)
File "C:\Program Files\Google\google_appengine\google\appengine\ext
\bulkload\__init__.py", line 235, in CreateEntity
entities = self.HandleEntity(entity)
File "C:\Google_apps\myrunningdata\myrunnerloader2.py", line 23, in
HandleEntity
runner = datastore_entities.Runner(racerunner)
AttributeError: 'module' object has no attribute 'Runner'
ERROR 2008-10-16 14:05:36,178 bulkload_client.py] Import failed
C:\Google_apps>
Any ideas?
Alan...
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---