[Zope-dev] Manual object-to-relational persistency framework

Bjorn Stabell bjorn@exoweb.net
Fri, 8 Mar 2002 20:06:47 +0800


I think the Storage interface wroks at a lower level, dealing with
pickled Python objects.  I'd like to do it at a higher level, so I can
define my own object-relational mapping, unique for each object type

I want to use the Zope framework (acquisition, access control, automatic
persistence) and still have the objects stored in a nice domain specific
relational schema, not storing anything (even "ghost" objects) in the
ZODB, but having "live" objects available as usual.  Ideally, it should
be possible to get the the data for the objects from anywhere.

I guess it would be possible to make a special Storage interface that
calls hooks in objects that have them to actually implement the
storage/persistency functionality, but that seems kind of overkill and
it'd mean I have to mount another Storage etc.

There must be any easier way?

-----Original Message-----
From: t.foerster@biologie.hu-berlin.de
[mailto:t.foerster@biologie.hu-berlin.de]=20
Posted At: Friday, March 08, 2002 17:27
Posted To: Zope Developer
Conversation: [Zope-dev] Manual object-to-relational persistency
framework
Subject: Re: [Zope-dev] Manual object-to-relational persistency
framework


On Friday, 8. March 2002 09:50, Bjorn Stabell wrote:
> I'm trying to use Zope without storing everything in ZODB while still=20
> having the perception of an object-oriented database.  I want to=20
> control the object-to-relational mapping layer, but would like the=20
> loading and saving of objects to be automatic.  Is there some way to=20
> do that using Zope?

> Where would I, e.g., hook into to get automatic=20
> loading/cacheing/saving of objects that weren't stored in ZODB, and=20
> where I could actually create the methods to load/save objects myself=20
> (I want to control the data structure).

Sounds like changing the (default) backend of the ZODB. That way you use
Zope=20
with the ZODB but your objects are stored in a RDBMS too.

ZODB comes with several backends (a.k.a Storages), the default
FileStorage,=20
DemoStorage, OracleStorage. The latter doing already object relational=20
mapping to Oracle RDBMS.

If you want to control the mapping, just define your own Storage (I do
not=20
know how hard it is, maybe the 'gurus' do?) and then tweak your Zope
instance=20
to use your custom Storage instead of the default FileStorage. That way
you do not have to care about automatic loading/saving of your=20
objects.

Regards,

Thomas
--=20
Webmaster
Innovationskolleg Theoretische Biologie http://itb.biologie.hu-berlin.de

_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -=20
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )