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