title: django.db.utils.IntegrityError: column "venue_city" contains null values
body: <p>I have read a lot of other posts here on stackoverflow and google but I could not find a solution. </p>
  
  <p>It all started when I changed the model from a CharField to a ForeignKey.
  The error I recieve is:</p>
  
  <pre><code>Operations to perform:
    Synchronize unmigrated apps: gis, staticfiles, crispy_forms, geoposition, messages
    Apply all migrations: venues, images, amenities, cities_light, registration, auth, admin, sites, sessions, contenttypes, easy_thumbnails, newsletter
  Synchronizing apps without migrations:
    Creating tables...
      Running deferred SQL...
    Installing custom SQL...
  Running migrations:
    Rendering model states... DONE
    Applying venues.0016_auto_20160514_2141...Traceback (most recent call last):
    File "/Users/iam-tony/.envs/venuepark/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
      return self.cursor.execute(sql, params)
  psycopg2.IntegrityError: column "venue_city" contains null values
  </code></pre>
  
  <p>My model is as follows:</p>
  
  <pre><code>class Venue(models.Model):
      venue_city = models.ForeignKey(City, null=True,)
      venue_country=models.ForeignKey(Country, null=True)
  </code></pre>
  
  <p>venue_country did not exist before so that migration happened successfully. But venue_city was a CharField. </p>
  
  <p>I made some changes to my migration file so that it would execute the sql as follows:</p>
  
  <pre><code># -*- coding: utf-8 -*-
  from __future__ import unicode_literals
  
  from django.db import migrations, models
  
  
  class Migration(migrations.Migration):
  
      dependencies = [
          ('venues', '0011_venue_map_activation'),
      ]
  
      migrations.RunSQL(''' ALTER TABLE venues_venue ALTER venue_city TYPE integer USING  venue_city::integer '''),
  
      migrations.RunSQL(''' ALTER TABLE venues_venue ALTER venue_city RENAME COLUMN venue_city TO venue_city_id '''),
  
      migrations.RunSQL(''' ALTER TABLE venues_venue ADD CONSTRAINT venues_venus_somefk FOREIGN KEY (venue_city_id) REFERENCES  cities_light (id) DEFERRABLE INITIALLY DEFERRED'''),
  </code></pre>
  
  <p>Thanks in advance!</p>
  
  <p>UPDATE: my new migration file:</p>
  
  <pre><code># -*- coding: utf-8 -*-
  from __future__ import unicode_literals
  
  from django.db import migrations, models
  
  
  class Migration(migrations.Migration):
  
      dependencies = [
          ('cities_light', '0006_compensate_for_0003_bytestring_bug'),
          ('venues', '0024_remove_venue_venue_city'),
      ]
  
      operations = [
          migrations.AddField(
              model_name='venue',
              name='venue_city',
              field=models.ForeignKey(null=True, to='cities_light.City'),
          ),
      ]
  </code></pre>