I resolved this issue by the below datamigration and then schemamigration to convert the charfield to foreignkey.
class Migration(DataMigration):
def forwards(self, orm):
for region in orm['runs.Stop'].objects.distinct('geo_region'):
orm['runs.GeoRegion'].objects.create(geo_name=region.geo_region)
db.start_transaction()
db.add_column('runs_stop', 'geo_region_tmp', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
db.commit_transaction()
db.start_transaction()
db.execute('Update runs_stop AS R SET geo_region_tmp=s.id FROM runs_georegion S WHERE S.geo_name=R.geo_region')
db.delete_column('runs_stop', 'geo_region')
db.add_column('runs_stop', 'geo_region', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False)
db.commit_transaction()
db.start_transaction()
db.execute('Update runs_stop SET geo_region=geo_region_tmp')
db.delete_column('runs_stop', 'geo_region_tmp')
db.commit_transaction()