text: Title: Foreign key relationships are not created when use_alter is used.
  Body: **Migrated issue, originally created by tomkcook ([@tomkcook](https://github.com/tomkcook))**
  
  The basic problem is that when a column is marked as ForeignKey and the use_alter option is set to True, the foreign key constraint is not created in the database. The database is postgresql 9.5.
  
  
  ```
  $ pip freeze
  alembic==0.8.7
  click==6.6
  Flask==0.11.1
  Flask-Alembic==2.0.1
  Flask-Login==0.3.2
  Flask-SQLAlchemy==2.1
  GeoAlchemy2==0.3.0
  gunicorn==19.6.0
  itsdangerous==0.24
  Jinja2==2.8
  Mako==1.0.4
  MarkupSafe==0.23
  pkg-resources==0.0.0
  psycopg2==2.6.2
  python-editor==1.0.1
  SQLAlchemy==1.0.15
  Werkzeug==0.11.11
  
  ```
  
  My test application is attached.  Briefly, I have these models:
  
  
  ```
  from test import db
  from sqlalchemy.dialects.postgres import UUID
  from sqlalchemy.sql import func
  
  class User(db.Model):
      id = db.Column(UUID, primary_key = True, default=func.uuid_generate_v1())
      name = db.Column(db.String)
  
  class Post(db.Model):
      id = db.Column(UUID, primary_key = True, default=func.uuid_generate_v1())
      name = db.Column(db.String)
      owner_id = db.Column(UUID, db.ForeignKey('user.id', use_alter=True))
  
      owner = db.relationship("User", backref=db.backref('posts', lazy='dynamic'))
  
  if __name__ == '__main__':
      me = User(name = 'me')
      db.session.add(me)
      db.session.add(Post(name = 'My Post', owner = me))
      db.session.commit()
  
  ```
  
  When I generate a revision I get this:
  
  ```
  """.
  
  Revision ID: f4f67ed72eac
  Revises: 
  Create Date: 2016-09-12 13:26:02.697400
  
  """
  
  # revision identifiers, used by Alembic.
  revision = 'f4f67ed72eac'
  down_revision = None
  branch_labels = ('default',)
  depends_on = None
  
  from alembic import op
  import sqlalchemy as sa
  from sqlalchemy.dialects import postgresql
  
  def upgrade():
      ### commands auto generated by Alembic - please adjust! ###
      op.create_table('post',
      sa.Column('id', postgresql.UUID(), nullable=False),
      sa.Column('name', sa.String(), nullable=True),
      sa.Column('owner_id', postgresql.UUID(), nullable=True),
      sa.ForeignKeyConstraint(['owner_id'], ['test.user.id'], use_alter=True),
      sa.PrimaryKeyConstraint('id'),
      schema='test'
      )
      op.create_table('user',
      sa.Column('id', postgresql.UUID(), nullable=False),
      sa.Column('name', sa.String(), nullable=True),
      sa.PrimaryKeyConstraint('id'),
      schema='test'
      )
      ### end Alembic commands ###
  
  
  def downgrade():
      ### commands auto generated by Alembic - please adjust! ###
      op.drop_table('user', schema='test')
      op.drop_table('post', schema='test')
      ### end Alembic commands ###
  
  ```
  
  As you can see, there is a ForeignKeyConstraint created.  But when I run alembic upgrade to that version, the table in the database doesn't have any foreign key constraints:
  
  ```
  test=> \d user
             Table "test.user"
   Column |       Type        | Modifiers 
  --------+-------------------+-----------
   id     | uuid              | not null
   name   | character varying | 
  Indexes:
      "user_pkey" PRIMARY KEY, btree (id)
  
  test=> \d post
              Table "test.post"
    Column  |       Type        | Modifiers 
  ----------+-------------------+-----------
   id       | uuid              | not null
   name     | character varying | 
   owner_id | uuid              | 
  Indexes:
      "post_pkey" PRIMARY KEY, btree (id)
  ```
  
  If the `use_alter` flag is omitted, then foreign key constraints are created correctly.
  
  ----------------------------------------
  Attachments: [test.tar.bz2](../wiki/imported_issue_attachments/387/test.tar.bz2)
  
  