Re: [SQLObject] DBMConnection not saving any data
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Ian B. <ia...@co...> - 2003-07-10 19:40:55
|
Yes indeed there is a problem. It seems the dbm modules were not being closed/synced when Python is exited, you have to explicitly close the file. I've made a fix to CVS (DBConnection.py) for this. On Tue, 2003-07-08 at 15:20, Mark Melvin wrote: > OK, I don't know if this is a dumb question or not - but I am trying to > develop using the DBM connection for now, but when I try to create the > tables, it creates the '.db' files but there is no data saved (i.e. they > are 0 bytes in size). I assume I am doing something wrong. I'm also > assuming this works on Win2K, with SQLObject 0.4, and that the DBM > filesystem is actually supposed to be a persistent format? > > My code is as follows (note - I changed all my StringCols to Cols with > sqlType set just to make sure that wasn't it): > > from SQLObject import * > > __connection__ = DBMConnection('db/', debug=1) > > class Customer(SQLObject): > Contacts = MultipleJoin('Contact', orderBy=['LastName', > 'FirstName']) > CustomerName= Col(sqlType='VARCHAR(30)', default="") > Street = Col(sqlType='VARCHAR(35)', default="") > Suite = Col(sqlType='VARCHAR(35)', default="") > City = Col(sqlType='VARCHAR(20)', default="") > Province = Col(sqlType='VARCHAR(15)', default="") > PostalCode = Col(sqlType='VARCHAR(7)', default="") > PhoneNumber1= Col(sqlType='VARCHAR(20)', default="") > FaxNumber = Col(sqlType='VARCHAR(20)', default="") > > class Contact(SQLObject): > Customer = ForeignKey('Customer') > LastName = Col(sqlType='VARCHAR(15)', default="") > FirstName = Col(sqlType='VARCHAR(15)', default="") > Title = Col(sqlType='VARCHAR(25)', default="") > PhoneNumber1= Col(sqlType='VARCHAR(20)', default="") > PhoneNumber2= Col(sqlType='VARCHAR(20)', default="") > Notes = Col(sqlType='TEXT', default="") > > if __name__ == '__main__': > Customer.createTable() > Contact.createTable() > Customer.new(CustomerName='Blow, Joe', City='Waterloo') > c = Customer.new(CustomerName='Wankus Inc.', City='Waterloo') > Contact.new(FirstName='Doctor', LastName='Evil', Title='The Bug > Cahuna', Customer=c) > print list(Customer.select()) > print list(Contact.select()) > > > I see the data printed fine, and the select statements work fine as well. > It isn't saved to the file however. Do I have to close the connection or > flush things somehow? |