title: SQLalchemy not find table for creating foreign key
body: <p>I have a problem with SQL Alchemy, while trying to create a database, i get:</p>
  
  <pre><code>"sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'estate_agent.person_id' could not find table 'person' with which to generate a foreign key to target column 'id'"
  </code></pre>
  
  <p>Meta datas:</p>
  
  <pre><code>db = create_engine('postgresql+psycopg2:...//')
  meta = MetaData()
  meta.bind = db
  </code></pre>
  
  <p>Person table:</p>
  
  <pre><code>tbl_person = Table(
     'person', meta,
     Column('id', Integer, Sequence('seq_person_id'), primary_key=True),
     Column('name', String(100), unique=True, nullable = False),
     Column('password', String(40), nullable = False),
     Column('person_type_id', Integer, ForeignKey("person_type.id"), nullable = False),
     Column('register_date', DateTime, default = datetime.now),
     Column('pendencies', String(200)),
     Column('active', Boolean, default = True),
     schema = 'public')
  </code></pre>
  
  <p>Bug Table:</p>
  
  <pre><code>tbl_estate_agent = Table(
     'estate_agent', meta,
     Column('person_id', Integer, ForeignKey("person.id"), primary_key = True),
     Column('prize_range_id', Integer, ForeignKey("prize_range.id"), nullable = False),
     schema = 'public')
  </code></pre>
  
  <p>Normal table (creating normally the fk)</p>
  
  <pre><code>tbl_person_agent = Table(
     'person_agent', meta,
     Column('person_id', Integer, ForeignKey("person.id"), primary_key = True),
     Column('prize_range_id', Integer, ForeignKey("prize_range.id"), nullable = False),
     schema = 'public')
  </code></pre>
  
  <p>Creation Call:</p>
  
  <pre><code>meta.create_all(checkfirst=True)
  </code></pre>
  
  <p>Complete error log:</p>
  
  <pre><code>Traceback (most recent call last):
     File "database_client.py", line 159, in &lt;module&gt;
      meta.create_all(checkfirst=True)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/schema.py", line 3404, in create_all
      tables=tables)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1616, in _run_visitor
      conn._run_visitor(visitorcallable, element, **kwargs)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1245, in _run_visitor
      **kwargs).traverse_single(element)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 120, in traverse_single
      return meth(obj, **kw)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/ddl.py", line 699, in visit_metadata
      collection = [t for t in sort_tables(tables)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/ddl.py", line 862, in sort_tables
      {'foreign_key': visit_foreign_key})
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 256, in traverse
      return traverse_using(iterate(obj, opts), obj, visitors)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 247, in traverse_using
      meth(target)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/ddl.py", line 853, in visit_foreign_key
      parent_table = fkey.column.table   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 725, in __get__
      obj.__dict__[self.__name__] = result = self.fget(obj)
     File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/schema.py", line 1720, in column tablekey)
  sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'estate_agent.person_id' could not find table 'person' with which to generate a foreign key to target column 'id'
  </code></pre>