title: Foreign key relationships missing when reflecting db in SqlAlchemy
body: <p>I am attempting to use SqlAlchemy (0.5.8) to interface with a legacy database declaratively and using reflection. My test code looks like this:</p>
  
  <pre><code>from sqlalchemy import *
  from sqlalchemy.orm import create_session
  from sqlalchemy.ext.declarative import declarative_base
  
  Base = declarative_base()
  engine = create_engine('oracle://schemaname:pwd@SID')
  meta = MetaData(bind=engine)
  
  class CONSTRUCT(Base):
      __table__ = Table('CONSTRUCT', meta, autoload=True)
  
  class EXPRESSION(Base):
      __table__ = Table('EXPRESSION', meta, autoload=True)
  
  session = create_session(bind=engine)
  </code></pre>
  
  <p>Now when I attempt to run a query using the join between these two tables (defined by a foreign key constraint in the underlying oracle schema):</p>
  
  <pre><code>print session.query(EXPRESSION).join(PURIFICATION)
  </code></pre>
  
  <p>... no joy:</p>
  
  <pre><code>sqlalchemy.exc.ArgumentError: Can't find any foreign key relationships between 'EXPRESSION' and 'PURIFICATION'
  </code></pre>
  
  <p>However:</p>
  
  <pre><code>&gt;&gt;&gt; EXPRESSION.epiconstruct_pkey.property.columns 
  [Column(u'epiconstruct_pkey', OracleNumeric(precision=10, scale=2, asdecimal=True,
  length=None), ForeignKey(u'construct.pkey'), table=&lt;EXPRESSION&gt;, nullable=False)]
  
  &gt;&gt;&gt; CONSTRUCT.pkey.property.columns
  [Column(u'pkey', OracleNumeric(precision=38, scale=0, asdecimal=True, length=None),
  table=&lt;CONSTRUCT&gt;, primary_key=True, nullable=False)]
  </code></pre>
  
  <p>Which clearly indicates that the reflection picked up the foreign key. </p>
  
  <p>Where am I going wrong?</p>