On Thursday 23 October 2008 02:00:28 Doug Farrell wrote:
> Hi all,
>
> I'm using SqlAlchemy 0.5rc2 on a Windows Server 2003 system and
> I've got a question about re-creating objects from a database. I'm
> building a Windows Service using Python and the win32all modules
> and using SA to save the state machine data for each of the Job
> objects I'm tracking in a collection class. The Job objects look
> like this:
>
> class Job(srsmanagerdb.Base):
> __tablename__ = "jobs"
> id = Column(Integer, primary_key=True,
> autoincrement=True)
> created = Column(DateTime, default=None)
> job_id = Column(String(32), default=None)
> srcpath = Column(String(128), default=None)
> filesize = Column(Integer, default=None)
> productType = Column(String(1), default=None)
> contentType = Column(String(10), default=None)
> priorityType = Column(String(10), default=None)
> priority = Column(Integer, default=None)
> press = Column(Integer, default=None)
> assignedPress = Column(Integer, default=None)
> state = Column(Integer, default=None)
> scheduled = Column(Boolean, default=None)
>
> def __init__(self, srcpath=None):
> '''constructor - initializes the instance variables.
> '''
> self._config = __config__
> self._logger = __logger__
> self._fileops = __fileops__
> self.srcpath = srcpath
> self.filesize = os.stat(self.srcpath).st_size
> self.created =
> datetime.datetime.fromtimestamp(os.stat(self.srcpath).st_ctime)
> self.state = 0
> self.oldState = None
> self.stateSS = singleshot.SingleShot()
> self._pressesStatus = PressesStatus()
> session = srsmanagerdb.Session()
> session.add(self)
> session.commit()
> self._logger.debug("job %s added" % self.filename)
>
> I've got attributes that are saved in the database and some that
> aren't (the ones that have _ prefix). If my server crashes I'd like
> it to read the database and rebuild my collection class of Job
> objects. I do this in the collection class constructor, and it
> works fine, but it doesn't restore the atttributes that aren't in
> the database, the _ prefixed ones. Does anyone have any suggestions
> about what is a good method to re-create a collection of objects
> that are represented in a table that also have attributes that
> aren't stored in the table?
>
the object loading does not do __init__ - it works pickle-like.
if u want some attributes populated at the time, use onload event:
http://www.sqlalchemy.org/docs/05/mappers.html#advdatamapping_mapper_reconstructor
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---