Como fazer um versionamento do banco de dados?
Pessoal, estou com um desafio aqui e gostaria da colaboração de vocês com sugestões :)
Nós temos um software aqui, controlamos as mudanças no banco através de um script que roda as migrações no servidor.
Porém, recentemente, estamos com muitos desafios para manter as versões do banco. Por exemplo:
- Versão Local Dev 1 na Branch X
- Versão Local Dev 2 na Branch Y
- Versão do ambiente de testes
- Versão do ambiente de produção
Estamos com alguns problemas e são eles:
- Toda vez que um novo colega de trabalho entra pro time, é um parto fazer o build do ambiente de desenvolvimento. Pois montar o banco no local dele é muito complicado, os migrations estão com inconsistências e fica com vários conflitos.
- Suponhamos que estou na Branch Y, mas vou ajudar o Dev 1 na Branch X. Puxo pro meu local, aplico o script de migration para ter o banco igual ao dele. Depois, quando volto para branch Y.. o meu banco fica diferente e acaba apresentado problemas com versão anterior do meu banco antes de ir ajudar o Dev 1 na Branch X.
Estou em busca de alguma solução que me ajuda a fazer esse controle de versões do banco, faça as alterações quando preciso trabalhar em um branch futura e desfaça essas alterações quando volto para uma branch passada.
Alguém já teve esse problema? Como resolveram?