mysql altere a coluna int para bigint com chaves estrangeiras

Quero alterar o tipo de dados de algumas colunas de chave primária no meu banco de dados de INT para BIGINT. A seguinte definição é um exemplo de brinquedo para ilustrar o problema:

CREATE TABLE IF NOT EXISTS `owner` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `thing_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `thing_id` (`thing_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

DROP TABLE IF EXISTS `thing`;
CREATE TABLE IF NOT EXISTS `thing` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

ALTER TABLE `owner`
  ADD CONSTRAINT `owner_ibfk_1` FOREIGN KEY (`thing_id`) REFERENCES `thing` (`id`);

gora, quando tento executar um dos seguintes comandos:

ALTER TABLE `thing` CHANGE `id` `id` BIGINT NOT NULL AUTO_INCREMENT;
ALTER TABLE `owner` CHANGE `thing_id` `thing_id` BIGINT NOT NULL;

Estou com um erro

#1025 - Error on rename of './debug/#[temp-name]' to './debug/[tablename]' (errno: 150)

aídas @SHOW INODB STATUS:

LATEST FOREIGN KEY ERROR
------------------------
120126 13:34:03 Error in foreign key constraint of table debug/owner:
there is no index in the table which would contain
the columns as the first columns, or the data types in the
table do not match the ones in the referenced table
or one of the ON ... SET NULL columns is declared NOT NULL. Constraint:
,
 CONSTRAINT "owner_ibfk_1" FOREIGN KEY ("thing_id") REFERENCES "thing" ("id")

Suponho que a definição de chave estrangeira bloqueie a alteração do tipo de coluna em ambos os lados. A abordagem ingênua para resolver esse problema seria excluir as definições de chave estrangeira, alterar as colunas e redefinir as chaves estrangeiras. Existe uma solução melhor

questionAnswers(6)

yourAnswerToTheQuestion