[storm] Thanks, and questions: SQL reserved keywords; "interface-driven" apps
Stephen Waterbury
waterbug at pangalactic.us
Sun Jan 20 01:38:58 GMT 2008
Storm developers,
First, let me say thanks for developing Storm! It appears to be well
thought out and designed. In my application I have a home-grown ORM
that I wrote several years before there were any decent Python ORMs,
and I have always hoped to replace mine with a better, well-supported
one. Storm is the first ORM I've seen that I like well enough to
try refactoring my code to incorporate it. :)
Now for my questions:
(1) Collisions between SQL table/column names and SQL reserved
keywords are not permitted, as of course you are aware (ref., e.g.,
<http://www.postgresql.org/docs/8.1/static/sql-keywords-appendix.html>).
Since I wanted my application objects' attributes to be free of this
restriction, I used a brute force approach in my ORM's automatic
table-creation methods: all my table names and column names
are formed by prepending '_' to the corresponding Python names,
which has worked quite well for my app (although it requires some
new typing habits when working with the database interactively,
but who would want to do that?? ;).
Having now played with Storm and inspected the code, it seems that
Storm's way of dealing with this issue is to say "Don't do that!"
Is that correct? That is of course a perfectly legitimate design
decision -- I just wanted confirmation so I know whether I need
to find my own way to work around it.
(2) My app is "interface-driven" rather than "class-driven" --
i.e., interfaces (I use zope.interface) are the primary containers
for application metadata, which then gets propagated to classes,
sql tables, user interfaces, and serialization methods from the
interfaces (which are themselves generated from external schema,
such as ontologies). It's not much of an effort to create
Storm-style classes from the interfaces automatically --
I've got that working now. Is the current plan for Storm
to continue to be "class-driven" as it is now? Again, that's
a legitimate design decision -- I'm just looking for confirmation
before I continue with my work-around.
The keyword issue will be the more difficult one for my app to
work around, of course, as the only ways I see right now involve
maintaining my own branch of Storm that incorporates the special
mappings. Suggestions welcome, of course!
Thanks again for an excellent ORM.
Cheers,
Steve
More information about the storm
mailing list