Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Começando com o versionamento de esquemas mysql sem exageros. Boas soluções?


Maneira simples para uma pequena empresa:despeje seu banco de dados em SQL e adicione-o ao seu repositório. Então, toda vez que você alterar algo, adicione as alterações no arquivo de despejo.

Você pode então usar diff para ver as mudanças entre as versões, sem mencionar ter comentários explicando suas mudanças. Isso também o tornará praticamente imune a atualizações do MySQL.

A única desvantagem que vi nisso é que você precisa se lembrar de adicionar manualmente o SQL ao seu arquivo de despejo. Você pode treinar-se para sempre lembrar, mas tenha cuidado se trabalhar com outras pessoas. Perder uma atualização pode ser uma dor mais tarde.

Isso pode ser mitigado criando algum script elaborado para fazer isso para você ao enviar para o subversion, mas é um pouco demais para um show de um homem só.

Editar: No ano que se passou desde esta resposta, tive que implementar um esquema de versão do MySQL para uma pequena equipe. Adicionar manualmente cada alteração foi visto como uma solução complicada, assim como foi mencionado nos comentários, então despejamos o banco de dados e adicionamos esse arquivo ao controle de versão.

O que descobrimos foi que os dados de teste estavam acabando no lixo e estava dificultando bastante a descoberta do que havia mudado. Isso poderia ser resolvido despejando apenas o esquema, mas isso era impossível para nossos projetos, pois nossos aplicativos dependiam de determinados dados no banco de dados para funcionar. Eventualmente, voltamos a adicionar manualmente as alterações ao dump do banco de dados.

Esta não foi apenas a solução mais simples, mas também resolveu alguns problemas que algumas versões do MySQL têm com exportação/importação. Normalmente, teríamos que despejar o banco de dados de desenvolvimento, remover quaisquer dados de teste, entradas de log, etc., remover/alterar certos nomes quando aplicável e só então poder criar o banco de dados de produção. Ao adicionar alterações manualmente, poderíamos controlar exatamente o que acabaria na produção, um pouco de cada vez, para que no final tudo estivesse pronto e a mudança para o ambiente de produção fosse o mais fácil possível.