Мы пытаемся переименовать столбец в 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' (errno: 150)
Эта ошибка 150 определенно относится к ограничениям внешнего ключа. См., Например,
Что такое mysql error 1025 (HY000): ошибка при переименовании './foo' (errno: 150) означает?
http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/
Итак, теперь мы пытаемся переименовать в raw SQL. Похоже, нам придется сначала отказаться от внешнего ключа, затем переименовать, а затем снова добавить внешний ключ. Правильно ли это звучит? Есть ли лучший способ, поскольку это кажется довольно запутанным и громоздким?
Любая помощь будет очень признательна!