Temos um banco de dados de produção que identificamos que precisa de alguma manutenção quando um colega sai - algumas deleções e renomeações de colunas e algumas renomeações de tabelas
Estamos tentando encontrar a melhor (mais rápida) maneira de fazer isso para que cause o mínimo de transtorno aos usuários.
Idealmente, gostaríamos de fazer o seguinte
Crie uma cópia do banco de dados atual usando mysqldump
Na cópia, faça as alterações necessárias
Atualize os aplicativos atuais para usar os novos nomes de coluna e teste a cópia
De alguma forma, envie as alterações para o banco de dados de produção e libere aplicativos atualizados para o público
Se restringirmos o problema a renomeações de colunas, parece que poderemos encontrar um aplicativo para nos ajudar a gerenciar a alteração.
MySQL Workbench usa CHANGE COLUMN
para renomear colunas. Depois de examinar o SQYLyog e o Red Gate MySQL Compare , ambos foram sugeridos como adequados. No entanto, embora ambos reconheçam que as colunas foram renomeadas, ambos usam o DROP COLUMN / ADD COLUMN
que não preserva os dados
O Red Gate SQL Data Compare não reconhece que as colunas são as mesmas após a renomeação, de modo que está fora como uma opção.
Gostaríamos de evitar ter que colocar o servidor de banco de dados offline para fazer as alterações, mas essa é a única opção?
Acabamos escrevendo nosso próprio aplicativo que gerencia as renomeações de tabelas e colunas