hi pete - the "key" attribute in Column is not well tested, so its not surprising that there are bugs with it.
ive created ticket 282 for this one and ill try to have a look at it in the next day or so. - mike On Aug 22, 2006, at 7:45 PM, Pete Taylor wrote: > 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 ------------------------------------------------------------------------- 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