On May 19, 2011, at 11:06 AM, 371c wrote: > Hi all, > > Scenario: i have a couple of models that i'd like to reuse across 3 > different web apps (w1, w2, w3). > > The idea is to: > > * create a separate project (eg. models_app) to be installed into the > python env via "python setup install" - sort of like a shared library. > > * In w1, w2 and/or w3, import "models_app" to have access to the > shared models. > > I have no idea of what could be the dangers of doing this especially > in respect to sqla (scoped?) sessions, transactions and the like.. > > Any thoughts, alternatives?
The model, that is your classes, mappers, and Table objects (lets call it the class-level structure), represent a fixed structure that represent a schema that may exist in any arbitrary database; the instantiation of that model, i.e. individual object instances, then represent the data within a specific database. The class-level structure isn't linked to an actual database. The Session on the other hand represents a handle to an active transaction in a database - it then maintains individual object instances, which by their association with the Session, are extensions of the Session's state which is ultimately an in-memory representation of a remote transaction. So sharing the model among different applications, that is, the class-level structure doesn't really have any impact on anything, its only the Session as well as the *instances* of your model classes, attached to that Session, that have some association with a particular database. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.