On 9/2/07, Marijn Haverbeke marijnh@gmail.com wrote:
Also, the creation of an SQL table is a shared-initialize :after method of db-class. This means that there's no need of an additional command to creating a table or all the tables -- it's all done at definition time. The drawback of this approach is that I cannot compute the dependencies between tables and reorder them so that Postgres is happy.
I think this is an awful idea -- keeping the definition and the actual creation of tables separately allows a flexibility which can save you a ton of headaches.
Well, for me it works fine this way. Also, this is only the default behavior. If you don't provide a connection spec to defdao (macro creating a subclass of dao with the metaclass set do db-class), then no SQL queries will be executed (I use this feature for making fixtures and base classes on the Lisp side that shouldn't have any effect on the Postgres side).
Do you think this is enough for saving that ton of headaches? :) If it is not, please don't hesitate to give examples of problems that may arise, and I will try to do something about them.
Cheers,
-- Richard