[Grok-dev] Re: STORM howto

Martin Aspeli optilude at gmx.net
Fri Mar 14 20:53:53 EDT 2008

Martijn Faassen wrote:

> No decision has been made yet. I'm not sure how to go about making this 
> decision - "wider consultation" sounds vague to me. Let's just think 
> about this carefully and experiment some more.

"Wider consultation" may involve the other Zope lists perhaps as a 
start? More experimentation is a good idea, of course.

> I think your post does show an important point: there is more momentum 
> *in the Zope community* behind SQLAlchemy than there is behind Storm. 
> With Storm, we have a bunch of big fish using it (Canonical, Lovely 
> systems). With SQLAlchemy, we have a lot of community activity. I think 
> that is an important point for SQLAlchemy. (of course that's not to say 
> there's no community activity for Storm at all - this thread is an 
> example of such after all!)

I think that's what I was getting at. I was a bit surprised to see Storm 
crop up here, in fact. :)

> The other point that bothers me about Storm is that they do not have a 
> database schema abstraction in Python. It's not possible to generate a 
> RDB schema from Python. They do not generate "create table" statements 
> at all. Although they're not absolutely against adding such a feature, 
> instead, they prefer and recommend people maintain their RDB the RDB 
> way. While I agree that for many projects this is the right approach to 
> take, I also think that the lack of such can seriously hinder agility in 
> smaller/starting projects (where you just want to get going) and 
> "demo-ability". In addition, I think SQLAlchemy allows introspection of 
> existing databases, which allows for the generation of cool tools as 
> well. Again a schema abstraction is helpful to support this kind of feature.

I think that'd be useful, especially for testing. Pylons has a 
"websetup" idiom where you can do (I think) "python setup.py websetup" 
and it will configure your database and do other pre-deployment tasks.

> Do you know whether people have done work integrating Zope 3 schema with 
> SQLAlchemy? I think we need a form of integration there, though I'm not 
> sure yet what shape this should take.

I know of a few things going on:

  - Laurence Rowe is working on collective.tin and collective.mercury. 
These deal with making Zope 3 schemata out of SQLAlchemy table 
definitions (and optionally serialising them back to Python code). I 
know this is a project that Laurence is actively working on (and getting 
paid to work on), so I'm sure he'd welcome any interest.

  - Similarly, Godefroid Chapelle is doing a project called 
collective.rope. I think it's similar, but perhaps depends on 
Archetypes. The code for this (and tin/mercury) are in the Collective 

  - Kapil Thangavelou (sp?) worked on Alchemist, which does various 
types of integration, including automatic schema and form generation. 
Bits of his code have landed in collective.mercury/tin/rope/lead as well.


Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

More information about the Grok-dev mailing list