Hi Phil - im going to run this locally to see whats up - my immediate intution is that it has something to do with the Column objects you are using to override those loaded from the "autoload=True" since thats the only thing here that is at all unusual...maybe try not using autoload=True for that partcular table. but ill run it here regardless and let you know what i find.
On Jan 28, 2008, at 4:03 PM, Phil Coombs wrote: > engine = create_engine(connectString, echo=False) > metadata = MetaData(engine) > > orders_table = Table('orders', metadata, autoload=True) > items_table = Table('items', metadata, autoload=True) > orderitems_table = Table('order_items', metadata, > Column('oi_order_id', Integer, > ForeignKey('orders.order_id'), > primary_key=True), > Column('oi_item_id', Integer, > ForeignKey('items.item_id'), > primary_key=True), > autoload=True > ) > > class Order(object): > def __init__(self, customer_name, order_date): > self.customer_name = customer_name > self.order_date = order_date > > class Item(object): > def __init__(self, description, price): > self.description = description > self.price = price > > class OrderItem(object): > def __init__(self, item, price=None): > self.item = item > self.price = price or item.price > > mapper(Order, orders_table, properties = { > 'id' : orders_table.c.order_id, > 'customer_name' : orders_table.c.o_customer_name, > 'order_date' : orders_table.c.o_order_date, > 'order_items' : relation(OrderItem) > }) > > mapper(Item, items_table, properties = { > 'id' : items_table.c.item_id, > 'description' : items_table.c.it_description, > 'price' : items_table.c.it_price > }) > > mapper(OrderItem, orderitems_table, properties = { > 'order_id' : orderitems_table.c.oi_order_id, > 'item_id' : orderitems_table.c.oi_item_id, > 'price' : orderitems_table.c.oi_price, > 'item' : relation(Item) > }) > > Session = sessionmaker(bind=engine, autoflush=True, > transactional=True) > session = Session() > > session.save(Item('Item A', 10.99)) > session.save(Item('Item B', 8)) > session.save(Item('Item C', 4)) > session.save(Item('Item D', 1)) > session.flush() > > def item(name): > return session.query(Item).filter_by(description=name).one() > > order = Order("cust1", datetime.now()) > order.order_items.append(OrderItem(item('Item A'))) > order.order_items.append(OrderItem(item('Item B'),10)) > order.order_items.append(OrderItem(item('Item C'))) > > session.save(order) > session.commit() --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---