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

esquema mysqldump apenas, atualização de esquema sem soltar


Como o MySQL saberia o que atualizar? Ele não pode saber em que estado o banco de dados de outra pessoa estará, portanto, não pode saber quais atualizações aplicar. Além disso, as atualizações frequentemente exigem mais do que apenas alterar o esquema; eles podem exigir alterações nos dados que já existem ou podem precisar que os dados sejam movidos do esquema antigo para o novo. Você nunca obterá algo que detectará automaticamente tudo isso.

A solução certa é escrever migrações. Toda vez que você altera o banco de dados, em vez de apenas alterar o esquema de sua cópia de desenvolvimento, você escreve um script para atualizar do esquema anterior para o novo (e geralmente um script para fazer o downgrade de volta ao esquema anterior, para que você possa fazer que se você precisar reverter uma atualização). Esse script faz tudo o que você precisa para alterar o esquema, mover dados e coisas do gênero.

Estruturas web mais modernas, como Ruby on Rails , têm suporte para migrações para facilitar o acompanhamento de quais migrações você já executou. Se você não estiver usando uma estrutura que suporte migrações, não seria muito difícil escrever seus próprios scripts para aplicar migrações. Basta numerar cada migração ou colocar uma data nela e manter uma tabela em seu banco de dados armazenando apenas a versão atual do esquema em que você está. Ao executar o script de migração, se houver migrações mais recentes que a versão atual, aplique esses scripts em ordem e atualize o número no banco de dados que informa em qual versão você está.