Hi all,
I'm fairly new to SA, and apologize if this has been answered
elsewhere... I've dug through old mailing lists, but can't find
anything, and haven't seen this referenced in the docs.

I have a set of table definitions that are using the following
construct for a foreign key:
Column("other_table_id", Integer, ForeignKey("other_table.id"), key="otherId")

I can't see any particular reason for this not to work, but it
doesn't.  It throws a KeyError on the column name when it hits the
column that contains the ForeignKey statement.  I know it worked in
the past, but I inherited the code, and I'm not sure at what SA
version it did work (I can install a few older eggs to find out, if
that will help).  What's strange though is that if I remove the
keyword arg "key", it runs just fine.  I've built a small test case
for it, and included it below.

Thanks for any help!
Pete

############################################################
from sqlalchemy import *

engine = create_engine('sqlite:///:memory:')
metadata = BoundMetaData(engine)


def main():
   test_table_one = Table('test_table_one', metadata,
       Column('legacy_test_id', Integer, primary_key=True, key="id"),
       Column('test_column_one', String(50)),
   )

   try:
       test_table_two = Table('test_table_two', metadata,
           Column('id', Integer, primary_key=True),
           Column('t_one_id', Integer,
ForeignKey('test_table_one.id'), key="tid"),
           Column('test_column_two', String(50)),
       )
   except Exception, e:
       print "Test Table Two build with explicit key name on FK failed"
       print "Exception was on %s " % e

   try:
       test_table_two = Table('test_table_two', metadata,
           Column('id', Integer, primary_key=True),
           Column('t_one_id', Integer, ForeignKey('test_table_one.id')),
           Column('test_column_two', String(50)),
           redefine=True
       )
   except Exception, e:
      print "Test Table Two build without explicit key name on FK failed"
      print "Exception was on %s " % e

   else:
      print "Test Table Two build without explicit key name on FK succedded"

if __name__=="__main__":
   main()

#################################################################

-- 
"All guilt is relative, loyalty counts, and never let your conscience
be your guide."
  - Lucas Buck, American Gothic

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to