Changeset 121

Show
Ignore:
Timestamp:
04/13/08 22:21:53 (5 months ago)
Author:
njriley
Message:

figured out the way I was actually supposed to define relations

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sucrose/trunk/python/mysql/db.py

    r115 r121  
    1 from sqlalchemy import create_engine, Table, Column, Integer, Numeric, String, MetaData, ForeignKey 
     1from sqlalchemy import create_engine, Table, Column, Integer, Numeric, String, \ 
     2     MetaData, ForeignKey 
    23from sqlalchemy.databases.mysql import MSEnum, MSInteger 
    34from sqlalchemy.ext.declarative import declarative_base 
     
    1819 
    1920_vending = Table('vending', _acm_Base.metadata, 
    20                  Column('uid', MSInteger(10, unsigned=True), ForeignKey(_users.c.uid), primary_key=True), 
     21                 Column('uid', MSInteger(10, unsigned=True), 
     22                        ForeignKey(_users.c.uid), primary_key=True), 
    2123                 Column('balance', Numeric)) 
    2224 
     
    4547 
    4648_transactions = Table('vending_transactions', _acm_Base.metadata, 
    47                       Column('transaction_id', Integer, primary_key=True, autoincrement=True), 
    48                       Column('user_id', MSInteger(unsigned=True), ForeignKey(_users.c.uid)), 
     49                      Column('transaction_id', Integer, primary_key=True, 
     50                             autoincrement=True), 
     51                      Column('user_id', MSInteger(unsigned=True), 
     52                             ForeignKey(_users.c.uid)), 
    4953                      Column('item_id', Integer, ForeignKey(_items.c.item_id)), 
    5054                      Column('cost', Numeric(4, 2))) 
    5155 
    5256class Vending(_acm_Base): __table__ = _vending 
    53 class User(object): balance = association_proxy('vending', 'balance') 
    54 mapper(User, _users, properties={'vending': relation(Vending, uselist=False, backref='user')}) 
     57class User(_acm_Base): 
     58    __table__ = _users 
     59    vending = relation(Vending, uselist=False, backref='user') 
     60    balance = association_proxy('vending', 'balance') 
    5561 
    5662class Item(_sucrose_Base): __table__ = _items 
    5763class Tray(object): num_consumed = association_proxy('item', 'num_consumed') 
    5864mapper(Tray, _trays, properties={'item': relation(Item, uselist=False)}) 
    59 class Transaction(object): item_name = association_proxy('item', 'name') 
    60 mapper(Transaction, _transactions, properties={'item': relation(Item, uselist=False)}) 
     65class Transaction(_acm_Base): 
     66    __table__ = _transactions 
     67    user = relation(User, uselist=False) 
     68    item = relation(Item, uselist=False) 
     69    item_name = association_proxy('item', 'name') 
    6170 
    6271