title: SQLAlchemy multi-schema support
body: <p>I am trying to create a database API and I am using Python 2.7 and SQLAlchemy. </p>
  
  <p>
  The API has to support multiple database platforms including MSSQL, MySQL, PostgreSQL, and SQLite. </p>
  
  <p>
  The problem with making it multi-platform, is that each database has a slightly different understanding of the word 'schema'. Basically, if I am connected to a MSSQL database I want to include or set the schema, but if I am connecting to a SQLite database I do not.</p>
  
  <p> 
  Another problem is that I am using the declarative_base within SQLAlchemy, and the classes have been created, with the schema specification, before I know what type of database I am connecting to. (The user will connect to the database after the script has started running.) So I don't know what type of schema to assign the table.</p>
  
  <p>
  Here is a simplified example of my code: </p>
  
  <pre><code>from sqlalchemy import Column, Integer, String
  from sqlalchemy.ext.declarative import declarative_base
  Base = declarative_base()
  class Methods(Base):
      __tablename__ = 'methods'
      __table_args__ = {u'schema': 'sname'}
  
      MethodID = Column('methodid', Integer, primary_key=True, nullable=False)
      MethodTypeCV = Column('methodtypecv', nullable=False, index=True)
      MethodCode = Column('methodcode', String(50), nullable=False)
      MethodName = Column('methodname', String(255), nullable=False)
      MethodDescription = Column('methoddescription', String(500))
      MethodLink = Column('methodlink', String(255))
      OrganizationID = Column('organizationid', Integer)
  </code></pre>
  
  <p>I have tried a lot of things, including, setting the schema after the class is created but that doesn't work.I have also tried to use reflection but I can't figure out how to get it to work with the declarative base. 
  </p>
  
  <p>Is there a way to use reflection or a global variable or something to be able to change the schema at runtime, once I have a connection to the database and know what the schema will be?</p>