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