I'm doing a Pylons app and must be doing something stupid because
similar logic seems to work elsewhere, but this just
isn't "sticking" in the DB.  I query to get existing 'contacts',
they're empty so I create a new one, append it, save and flush, but it
doesn't show up in the diagnostic queries I do.  Perhaps I'm not
seeing something obvious, any suggestions?
   contacts = 
self.session.query(model.Contact).select_by(client_id=client.client_id)
   print "#vendor.upload DBQ contacts=", contacts
   contacts = client.contacts
   print "#vendor.upload DOT contacts=", contacts

   contact = model.Contact(client_id=client.client_id,
                           email=row['contactemail'],
                           password=row.get('contactpassword'),
                           firstname=row.get('contactfirstname'),
                           lastname=row.get('contactlastname'),
                           )
   print "#vendor.upload New contact=", contact
   print "#vendor.upload Query contacts before append=", 
self.session.query(model.Contact).select()
   contacts.append(contact)
   print "#vendor.upload Query contacts after  append=", 
self.session.query(model.Contact).select()
   self.session.save(contact)
   print "#vendor.upload Query contacts after    save=", 
self.session.query(model.Contact).select()
   self.session.flush()
   print "#vendor.upload Query contacts after   flush=", 
self.session.query(model.Contact).select()

When I run it, you see it creates a new one but then none of the
queries find the contact from a query. An SQL query against the MySQL
DB show's it's not their either.

   #vendor.upload DBQ contacts= []
   #vendor.upload DOT contacts= []
   #vendor.upload New contact= Contact(None,9,[EMAIL PROTECTED],None,None,None 
[None, None])
   #vendor.upload Query contacts before  save= []
   #vendor.upload Query contacts after   save= []
   #vendor.upload Query contacts after  flush= []

The client and contact model and relations look like:

   client_table = Table('client', metadata,
                        Column('client_id',        Integer,        
primary_key=True),
                        Column('vendor_id',        Integer,        
ForeignKey('vendor.vendor_id'), nullable=False),
                        Column('name',             String(40),     unique=True, 
nullable=False),
                        Column('ts_created',       DateTime,       
default=func.current_timestamp()),
                        Column('ts_updated',       DateTime,       
onupdate=func.current_timestamp()),
                        )
   mapper(Client, client_table,
          properties={'contacts': relation(Contact, lazy=False),
                      'systems':  relation(System,  lazy=False),
                      })

   contact_table = Table('contact', metadata,
                         Column('contact_id',        Integer,        
primary_key=True),
                         Column('client_id',          Integer,        
ForeignKey('client.client_id'), nullable=False),
                         Column('email',              String(80),     
unique=True, nullable=False),
                         Column('password',           String(40),     
nullable=False),
                         Column('firstname',          String(40),     
nullable=True),
                         Column('lastname',           String(40),     
nullable=True),
                         Column('ts_created',         DateTime,       
default=func.current_timestamp()),
                         Column('ts_updated',         DateTime,       
onupdate=func.current_timestamp()),
                         )


Any ideas? Thanks!

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

Reply via email to