unfortunately the original Bulkloader was deprecated recently and they
now use configuration files:

transformers:
- kind: person
  connector: csv
  connector_options:
  property_map:
      - property: identifier
        external_name: Identifier

      - property: name
        external_name: Name


I learn a lot from studying this:
http://bulkloadersample.appspot.com/



On Nov 23, 8:16 am, howesc <[email protected]> wrote:
> Hi there,
>
> First off, read up on the GAE bulk 
> loader:http://code.google.com/appengine/docs/python/tools/uploadingdata.html
> i think the newer releases support CSV, though i have not used it for
> CSV.
>
> below i'm pasting some old code of mine for uploading and downloading
> CSV, including fixup of references.  it is specific to my database, so
> you will need to tweak it.  also, it is a year old and has not been
> used for close to a year because my dataset quickly grew to larger
> than could be processed in the 30 second request limit.
>
> #...@todo requires membership of admin
> @auth.requires_login()
> def export():
>     """
>     Export the database as a CSV file.  Note that this CSV file format
> is
>     particular to web2py and will allow upload via L{replace_db} to
> this app
>     running on any database type that web2py supports.
>     """
>     s = StringIO.StringIO()
>     db.export_to_csv_file(s)
>     response.headers['Content-Type'] = 'text/csv'
>     response.headers['Content-Disposition']= \
>         'attachment; filename=rockriver_db_'+str(now)+'.csv'
>     return s.getvalue()
>
> #...@todo requires membership of admin
> @auth.requires_login()
> def replace_db():
>     """
>     Truncate all tables, and replace with data from the uploaded CSV
> file.
>     Note that this is intended to load data from the web2py formatted
> csv file
>     as downloaded from L{export}
>     """
>     id_map = None
>     form = FORM(INPUT(_type='file', _name='data'),
>                 INPUT(_type='submit'))
>     if form.accepts(request.vars):
>         for table in db.tables:
>             db[table].truncate()
>         id_map = {}
>
> db.import_from_csv_file(form.vars.data.file,id_map=id_map,unique=False)
>         #...@todo: fix up song media references
>         songs = db(db.song.id>0).select()
>         for song in songs:
>             if not song.media_ids:
>                 continue
>             new_media = []
>             medias = song.media_ids
>             for m in medias:
>                 new_media.append(id_map['media_ids'][m])
>             song.update_record(media_ids = new_media)
>         #...@todo: fix up recording.media references
>         recordings = db(db.recording.id>0).select()
>         for r in recordings:
>             if not r.media_ids:
>                 continue
>             new_media = []
>             medias = r.media_ids
>             for m in medias:
>                 if id_map['media_ids'].has_key(m):
>                     new_media.append(id_map['media_ids'][m])
>             r.update_record(media_ids = new_media)
>         #...@todo: fix up product.elements references
>         products = db(db.product.id>0).select()
>         for p in products:
>             if not p.elements_ids:
>                 continue
>             new_song = []
>             songs = p.elements_ids
>             for s in songs:
>                 if id_map['song'].has_key(s):
>                     new_song.append(id_map['song'][s])
>             p.update_record(elements_ids = new_song)
>     return dict(form=form, id_map=id_map)
>
> good luck!
>
> christian
>
> On Nov 21, 5:36 pm, olifante <[email protected]> wrote:
>
>
>
>
>
>
>
> > Hi everybody,
>
> > I'm having trouble finding out what is the appropriate way to load
> > data into a web2py webapp running on GAE. I created a script that
> > parses some files and inserts data into a local web2py instance using
> > "web2py -S myapp -M -R myscript.py", but I see no way of doing the
> > same either for a local GAE instance (running with dev_appserver) or
> > for a deployed GAE instance.
>
> > I know that you can export the entire database from a standard web2py
> > instance using something like this:
>
> > db.export_to_csv_file(open('somefile.csv', 'wb'))
>
> > Unfortunately, since you cannot use the web2py shell with GAE, I don't
> > see how I can import that database dump either into the local GAE
> > instance or the deployed GAE instance.
>
> > Can anybody help?

Reply via email to