>From 30 mins to 2mins... shame :P

Thanks Micheal !

Forgive me, what about the other question about foreign keys?


On Thu, Mar 25, 2010 at 3:43 PM, Michael Bayer <mike...@zzzcomputing.com>wrote:

> masetto wrote:
> > Hi all,
> >
> > i am writing a python script which parse an xml file (python lxml) and
> > import it into a sqlite db, and it works.
> > The xml file size is about 30Mb and the import operation takes about 15
> > minutes (do you think is too much? is there something i can do to speed
> up
> > the process?)
> >
> > This is a piece of the import function:
> >
> > ...
> > for definition in definitions.getchildren(): #iterate for every xml
> > children
> > node
> >     defInst = SQLTableBuilder_Definition.DefinitionClass(definition)
> #read
> > and write on db some attribute of the node
> >     ...
> >     if subbaElem1.tag == mainNS + "platform": #another loop iterate for
> > every sub-node of the definition node
> >                     platf = SQLTableBuilder_Platform.PlatformClass()
> >                     platf.setPlatform(str(subbaElem1))
> >                     platf.platformId_fk = defInst.defId
> >
> >                     session.add(platf)
> >                     session.commit()
> >      ...
> >      session.add(defInst)
> >      session.commit()
>
>
> don't commit on every node and on every sub-node.  Just commit once every
> 1000 new objects or so.   will save a ton of processing.
>
>
>
> >
> > where DefinitionClass contains the attributes declaration (primary_key,
> > column(string), etc.) and a Foreign Key.
> > There is a relation between the definition table and the platform table
> > (one
> > or more platforms - Operating System - can be associated to a single
> > definition) so,
> > in the platform table, i've added the following: platformId_fk =
> > Column('definitionId_fk', Integer, ForeignKey('definitions.defId'))
> >
> > All my ORM-Classes are declared within n different classes within n
> > different python modules so, i've included the needed imports everytime i
> > needed it.
> > And i suppose this is a problem, at least for me, sometime, because when
> i
> > try to add: PlatformRel =
> > relation(SQLTableBuilder_Definition.DefinitionClass, backref="platform")
> > within my platformClass, i got: 'list' object has no attribute
> > '_sa_instance_state' :/
> >
> > So, i've tried to "manually" set the foreign key, as you can see above.
> In
> > the documentation (http://www.sqlalchemy.org/docs/ormtutorial.html) i
> > read:
> > " SQLAlchemy is automatically aware of many-to-one/one-to-many based on
> > foreign keys." Does this mean that what i've done is correct or i'm a
> > little
> > confused? If i "manually" set a foreign key value, does sqlalchemy
> > understand that a relation between two tables exists?
> >
> > Thanks for your attention.
> > ---
> > Masetto
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "sqlalchemy" group.
> > To post to this group, send email to sqlalch...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > sqlalchemy+unsubscr...@googlegroups.com<sqlalchemy%2bunsubscr...@googlegroups.com>
> .
> > For more options, visit this group at
> > http://groups.google.com/group/sqlalchemy?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@googlegroups.com.
> To unsubscribe from this group, send email to
> sqlalchemy+unsubscr...@googlegroups.com<sqlalchemy%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to