import sys
from sqlalchemy import *
from traceback import print_tb

tests = Table('tests',
    Column('id', Integer, primary_key=True),
    Column('type', String),
    Column('data1', Integer),
    Column('data2', String))
    
class Test1(object):
    def __repr__(self): return "Test1: %s" % self.data1

class Test2(object):
    def __repr__(self): return "Test2: %s" % self.data2

assign_mapper(Test1, tests)    
assign_mapper(Test2, tests)    

test1select = select([tests.c.id, tests.c.type, tests.c.data1]).alias('test1select')
test2select = select([tests.c.id, tests.c.type, tests.c.data2]).alias('test2select')

global_connect('sqlite://', echo=True, echo_uow=True)    

assign_mapper(Test1, test1select)
assign_mapper(Test2, test2select)

tests.create()

first = Test1(data1=5)
second = Test2(data2="hi")

try:
    objectstore.commit()
except:
    tag, error, traceback = sys.exc_info()
    file = open('example_tb.err', 'w')
    print_tb(traceback, limit=None, file=file)
    file.close()
    raise
    
    
