This has bothered me for awhile. The way I've been renaming columns that have foreign keys thus far has been to first remove all the foreign key constraints on various tables, and their indexes... then I rename the column, then I re-add all the indexes and foreign keys on all the tables I removed.
This is very time-consuming... especially if I have tons of foreign keys to drop and re-add because it is being used in many tables in the database. Creating the migration files for these to run against the production database takes forever, and I gotta think there must be a way for mysql to be smarter than this.
Is there a simpler way? I need to maintain my data.