Are you trying to load the data in production or the local datastore? I found it much easier to load data using either one of these methods: 1. Write a python script that loads the data for you. For example, I access mine via: http://localhost:8080/load
2. Use Fixture!: Fixture is pretty awesome. We use it to load test data for our unit and functional tests. You can use the datastore file created by fixture with dev_appserver. http://farmdev.com/projects/fixture/using-fixture-with-appengine.html -Mahmoud On Oct 16, 9:20 am, Alan <[EMAIL PROTECTED]> wrote: > 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 > --urlhttp://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 google-appengine@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---