[BlueBream] Re : can't persist

Jim Pharis binbrain at gmail.com
Thu Jul 1 10:55:16 EDT 2010


Thanks for your help Christophe. I found a getRoot in zope.traversal.api but
it requires the context of a child a object that is Persistent. Thus, I
couldn't use the context in my none persistent code to find the parent
Persistent root. What I ended up doing was hooking into
IDatabaseOpenedWithRootEvent and registering a utility with my connection
info. It seems strange to have to do it this way, but it works.

It'd be nice for there to already be a utility registered for me in the
GlobalSiteManager that has the Persistent connection info rather then having
to register it myself.

- Jim

On Thu, Jul 1, 2010 at 6:49 AM, Christophe Combelles <ccomb at free.fr> wrote:

> rootFolder is a class or factory to create a rootfolder, but this is just
> an applicative root folder with a specific interface, just a convention. The
> zodb root object is a different object which is always present when you open
> an empty zodb, and that you'll be able to access with
> IDatabaseOpenedWithRoot event.
>
> If you want to retrieve the root object or any possible rootFolder, you can
> use some hooks such as getSite or getRoot, I don't remember where they are
>
> Christophe
>
> ----- Reply message -----
> De : "Jim Pharis" <binbrain at gmail.com>
> Date : mer., juin 30, 2010 23:05
> Objet : [BlueBream] can't persist
> Pour : "Christophe Combelles" <ccomb at free.fr>
> Cc : <bluebream at zope.org>
>
>
>
> So I'm mistaken about the purpose of the rootFolder method then. However, I
> can't really use the IDataOpenedWithRootEvent cleanly because I don't want
> the root obj when the connection is opened, I want it later. Therefore,
> getting at the root obj still isn't real obvious to me in this situation.
>
> On Wed, Jun 30, 2010 at 4:06 PM, Christophe Combelles <ccomb at free.fr>
> wrote:
>
> > Le 30/06/2010 21:47, Jim Pharis a écrit :
> > > No, I don't see the changes. Maybe I should be more specific about what
> > > I'm doing.
> > >
> > > I have an AdminUtility registered with the below method that I call
> from
> > > a view. If I inspect the root object after that method exists newsite
> > > isn't in there.
> > >
> > > from zope.site.folder import rootFolder
> > > def install(self)
> > >          newsite = NewSite()
> > >          newsite.setSiteManager(LocalSiteManager(newsite))
> > >          root = rootFolder()
> > >          import pdb; pdb.set_trace()
> > >          root['newsite'] = newsite
> > >          root._p_changed = True
> > >          transaction.commit()
> >
> >
> > You're creating a root object in a local variable, and this variable is
> > destroyed at the end of the function. You should retrieve the root
> instead
> > of
> > creating it, since an empty ZODB always has a root object.
> >
> >
> >
> http://bluebream.zope.org/doc/1.0/faq.html#how-do-i-automatically-create-some-needed-object-at-application-startup
> >
> > >
> > >
> > > On Wed, Jun 30, 2010 at 3:11 PM, Christophe Combelles <ccomb at free.fr
> > > <mailto:ccomb at free.fr>> wrote:
> > >
> > >     Le 30/06/2010 20:31, Jim Pharis a écrit :
> > >      > I'm trying out BlueBream 1.0b2 and I'm running into a problem
> with
> > >      > Persistent objects. The installation is pretty out of the box at
> > this
> > >      > point. When I use .\bin\paster shell debug.ini I seem to be able
> > to
> > >      > create Persistent objects and transaction.commit and changed
> > >     objects are
> > >      > properly committed. However, when I start using either
> > .\bin\paster
> > >      > serve debug.ini or .\bin\paster serve deploy.ini, no matter what
> > >     I do to
> > >      > Persistent objects transaction.commit() returns None. I noticed
> > that
> > >      > even if I directly set obj._p_changed=1 it doesn't work, and if
> I
> > >     look
> > >      > at _p_changed right away, I see its been reverted back to False.
> > >     What am
> > >      > I doing wrong here?
> > >
> > >     Hi!
> > >
> > >     transaction.commit() is not supposed to return anything, don't you
> > >     see the
> > >     changes in your application after ending the debug session and
> > >     returning to the
> > >     paster serve ?
> > >
> > >     Christophe
> > >
> > >      >
> > >      > TIA,
> > >      >
> > >      > - Jim
> > >      >
> > >      >
> > >      >
> > >      > _______________________________________________
> > >      > bluebream mailing list
> > >      > bluebream at zope.org <mailto:bluebream at zope.org>
> > >      > https://mail.zope.org/mailman/listinfo/bluebream
> > >
> > >     _______________________________________________
> > >     bluebream mailing list
> > >     bluebream at zope.org <mailto:bluebream at zope.org>
> > >     https://mail.zope.org/mailman/listinfo/bluebream
> > >
> > >
> >
> > _______________________________________________
> > bluebream mailing list
> > bluebream at zope.org
> > https://mail.zope.org/mailman/listinfo/bluebream
> >
>
>
>
> _______________________________________________
> bluebream mailing list
> bluebream at zope.org
> https://mail.zope.org/mailman/listinfo/bluebream
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/bluebream/attachments/20100701/b417c586/attachment-0001.html 


More information about the bluebream mailing list