[Grok-dev] megrok.rdb updated
Martijn Faassen
faassen at startifact.com
Wed Jun 25 08:46:45 EDT 2008
Hi there,
I've started updating megrok.rdb, using the recent work done on
zope.sqlalchemy, z3c.saconfig, and my now somewhat greater understanding
of SQLAlchemy.
As a result, megrok.rdb has moved to a top-level directory in svn and
now actually has a README.txt which is also a doctest:
http://svn.zope.org/megrok.rdb/trunk/src/megrok/rdb/README.txt
I also updated the rdbexample to make use of the new code, though it's
rather hard to play with it as it has the horrible text-only screens
instead of proper page templates:
http://svn.zope.org/grokapps/rdbexample/trunk
There is a lot that remains to be done.
* The directives need to become a lot stricter; right now it's too easy
to do something wrong and get an obscure error. We need more validation,
better default behavior, etc.
* It turns out that using auto-generated primary keys as a container key
doesn't look possible: this primary key is not assigned yet by the
database by the time the container can be used. This means containers
need an important re-think as this destroys the only sensible default
behavior I can think of right now. This is a big problem and we need
some way around it - there often is no other column in a database table
that can function as a key.
* it would be nice if we could have a default behavior for metadata, so
that the rdb.metadata directive can be omitted entirely. Note that the
rdb.metadata directive may not work properly yet on a module level; at
least I haven't tested it yet.
* More work needs to be done in making database setup easier. While
z3c.saconfig helps a lot, it's still setting up quite a bit to get the
basic case working. I hope we'll eventually see a grokui.rdb which
allows people to set up a database utility and connection parameters
through the grok admin screens.
* actually automatically creating the tables in the database from the
metadata is something we need some infrastructure for too. Right now in
rdbexample I do this upon first traversal into the application. We could
do it upon application add time perhaps, and also perhaps present a UI
in grokui.rdb to let people refresh the database tables.
* I haven't even touched the part that generates a Zope 3 schema from
database schemas; this code is nice to generate forms. This requires
some more study of the various alternatives around, and SQLAlchemy
itself (last time we looked at it we weren't able to retrieve the order
of definition for columns in a table, which is rather important to show
a nice form).
Regards,
Martijn
More information about the Grok-dev
mailing list