Мы пытаемся переименовать столбец в MySQL (5.1.31, InnoDB), который является внешним ключом другой таблицы.
Сначала мы попытались использовать Django-South, но столкнулись с известной проблемой:
http://south.aeracode.org/ticket/243
OperationalError: (1025, «Ошибка при переименовании './xxx/#sql-bf_4d' в './xxx/cave_event' (errno: 150)»)
И
Ошибка при переименовании './xxx/#sql-bf_4b' в './xxx/cave_event' (номер ошибки: 150)
Эта ошибка 150 определенно относится к ограничениям внешнего ключа. См., Например,
Что означает ошибка mysql 1025 (HY000): Ошибка при переименовании ./foo (ошибка: 150) означает?
http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/
Итак, теперь мы пытаемся выполнить переименование в чистом SQL. Похоже, нам нужно сначала удалить внешний ключ, затем выполнить переименование, а затем снова добавить внешний ключ. Это звучит правильно? Есть ли способ лучше, поскольку он кажется довольно запутанным и громоздким?
Любая помощь приветствуется!