Hi,

I have a question that I can't find a satisfactory answer to. Apologies in 
advance if it's more of a Python question, but it's possible that there is a SA 
solution.

I have a project that defines a database connection and classes based on 
database tables. A script that uses these classes would start with:

import project.DatabaseConnection as db # create_engine() and metadata defined 
here
import project.ModelClasses

In ModelClasses, I define all of the table classes using:

Base = declarative_base(bind=db.engine)

class Table1(Base):
        __tablename__ = 'table1'
        __table_args__ = {'autoload' : True} # requires metadata to work


This is fine. I have a second project that also defines a different set of 
tables that I want to use, so the main script would then:

import project2.ModelClasses # a different set of tables

If it's not clear how the "db" parameter (the database connection) was defined 
in ModelClasses, well, that's my problem. I can't pass a parameter to an import 
statement of course. The DatabaseConnection class defines the engine and 
metadata, and now I need to use these objects to generate my base class. How 
can I pass this object around? Should I be using a different model?

The "python way" seems to be to create a "config" class, but 
project2.ModelClasses won't know anything about it if it's defined in the first 
project. As to the reason why there are two separate projects, consider the 
case where one set of tables is one logical group, and the second is a 
replicated copy from another server. I can't merge all of these projects since 
they really are independent "units", but sometimes I will link them (as above).

Any advice would be greatly appreciated!

Cheers,
Demitri

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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.

Reply via email to