title: How to create only one table with SQLAlchemy?
body: <p>I am unable to create a single table using SQLAlchemy.</p>
  
  <p>I can create it by calling <code>Base.metadata.create_all(engine)</code> but as the number of table grows, this call takes a long time.</p>
  
  <p>I create table classes on the fly and then populate them.</p>
  
  <pre><code>from sqlalchemy import create_engine, Column, Integer, Sequence, String, Date, Float, BIGINT
  from sqlalchemy.ext.declarative import declarative_base
  from sqlalchemy.orm import sessionmaker
  
  Base = declarative_base()
  
  class HistoricDay():
  
      id = Column(Integer, Sequence('id_seq'), primary_key=True)
      #  Date, Open, High, Low, Close, Volume, Adj Close
      date = Column(Date)
      open = Column(Float)
      high = Column(Float)
      low = Column(Float)
      close = Column(Float)
      volume = Column(BIGINT)
      adjClose = Column(Float)
  
      def __init__(self, date, open, high, low, close, volume, adjClose):
          self.date = date
          self.open = open
          self.high = high
          self.low = low
          self.close = close
          self.volume = volume
          self.adjClose = adjClose
  
  def build_daily_history_table_repr(self):
          return "&lt;"+self.__tablename__+"('{}','{}','{}','{}','{}','{}','{}','{}')&gt;".format(self.id, self.date, self.open, self.high, self.low, self.close, self.volume, self.adjClose)
  
  def build_daily_history_table(ticket):
      classname = ticket+"_HistoricDay"
      globals()[classname] = type(classname, (HistoricDay,Base), {'__tablename__' : ticket+"_daily_history"})
      setattr(globals()[classname], '__repr__', build_daily_history_table_repr)
  
  # Initialize the database :: Connection &amp; Metadata retrieval
  engine = create_engine('mysql+cymysql://root@localhost/gwc?charset=utf8&amp;use_unicode=0', pool_recycle=3600) # ,echo = True
  
  # SqlAlchemy :: Session setup
  Session = sessionmaker(bind=engine)
  
  # Create all tables that do not already exist
  Base.metadata.create_all(engine)
  
  # SqlAlchemy :: Starts a session
  session = Session()
  
  ticketList = getTicketList()
  
  for ticket in ticketList:
      build_daily_history_table(ticket)
      class_name = ticket+"_HistoricDay"
  
      meta_create_all_timer = time.time()
      # Create all tables that do not already exist
      # globals()[class_name]('2005-07-24',0,0,0,0,0,0).create(engine)  #doesn't work
      #(globals()[class_name]).__table__.create(engine) #doesn't work
      # session.commit() #doesn't work
  
      #Base.metadata.create_all(engine) # works but gets very slow
      print("  meta_create_all_timer {}s".format(time.time()-meta_create_all_timer))
  
      data = getData(ticket)
  
      for m_date, m_open, m_close, m_high, m_low, m_volume, m_adjClose in data:
          entry = globals()[class_name](m_date, m_open, m_high, m_low, m_close, m_volume, m_adjClose)
          session.add(entry)
  
      session.commit()
  </code></pre>
  
  <p>I saw in the <a href="http://docs.sqlalchemy.org/en/rel_0_8/core/metadata.html" rel="noreferrer">documentation</a> that you can do </p>
  
  <pre><code>engine = create_engine('sqlite:///:memory:')
  
  meta = MetaData()
  
  employees = Table('employees', meta,
      Column('employee_id', Integer, primary_key=True),
      Column('employee_name', String(60), nullable=False, key='name'),
      Column('employee_dept', Integer, ForeignKey("departments.department_id"))
  )
  employees.create(engine)
  </code></pre>
  
  <p>However, I'm not able to figure out how to do the same thing as <code>Table</code> does, with <code>declarative_base()</code>.</p>
  
  <p>How can I do that with classes that inherit from <code>declarative_base()</code>?</p>