On Nov 26, 2006, at 5:20 PM, Toshio Kuratomi wrote:
4) While working on the schema, I've become a bit less enamoured
with
SQLObject. It seems to make easy things easy and hard things
difficult
to impossible. For instance, there doesn't seem to be a way to
specify
multi-field primary keys (or multi-field unique constraints which
would
do almost as well.)
From the docs:
"SQLObject does not support primary keys made up of multiple columns
(that probably won't change). It does not generally support tables
with primary keys with business meaning -- i.e., primary keys are
assumed to be immutable (that won't change)."
(And I happen to agree with their reasoning behind this decision...)
Doing unique constraints is easy enough, though:
class Foo:
firstName = StringCol(length=30)
lastName = StringCol(length=40)
firstLastIndex = DatabaseIndex('firstName', 'lastName', unique=1)
Are there any other specific issues that you had with SQLObject?
I don't know SQLAlchemy, but I suspect that for now the "devil you
know" is better than the "devil you don't". Or maybe I haven't run
into the real-world problems that you have with your schema :)
I think calling Brew a packageDB is a bit of a stretch. From what I
recall, yes, it can track who owns what packages (and the packageDB
schema I originally suggested was based in part on the brew-style
schema :). However, the packageDB has a lot more community-only stuff
that just wasn't thought of in the brew world. The best end result
would probably be had by continuing the packageDB work, and merging
that functionality onto brew when appropriate.
Best,
-- Elliot