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
-~----------~----~----~----~------~----~------~--~---

Reply via email to