Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Desenvolvedores, não achei em qual parte do fórum deveria colocar essa minha dúvida.
Estou ajudando na implantação do Git na empresa em que trabalho e eis que surgiu uma dúvida.
Desenvolvemos um CMS com PHP e MySQL, já versionamos o nosso código fonte com o Git, mas ficou um dúvida com em relação ao banco de dados.
Dúvida: No workflow que vocês trabalham utilizando um único banco de dados onde todas trabalham ou cada desenvolver tem a cópia do banco de dados e qualquer alteração precisa ser replicada no banco principal ?
Movido para: Desenvolvimento → Metodologia, Modelagem e Arquitetura
Obrigado Gabriel
Isso varia entre empresas e projetos. Normalmente, existe um banco de dados de cada ambiente para um projeto/sistema. Que na maioria dos casos é entre ambiente de testes e produção (podem haver outros, como o de homologação).
Outra situação, é cada um manter o seu banco de dados localmente
Em ambos os casos, você pode utilizar alguma ferramenta ou biblioteca que auxilie a criação do SGBD.
Casos de bibliotecas há o Migrations & Seeding (Laravel). Não conheço muitas outras pois não gosto dessa abordagem.
De ferramentas (abordagem que eu utilizo), existe o MySQL Workbench (específico MySQL) e SQL Power Architect (multi SGBD), aonde você cria o diagrama ER, pode popular alguns dados essenciais e sincroniza com o SGBD.
Com uma ferramenta, você pode analisar as diferenças entre os SGBDs, sincronizar o que desejar e, em casos mais crítico, realizar a engenharia reversa da base de dados. Além de ter a interpretação/análise visual do SGBD.
Quanto ao versionamento, o git deve versionar códigos, o que não inclui o banco de dados. Como eu uso o BitBucket, é permitido anexar arquivos binários ao projeto, dessa forma eu possuo diagrama ER anexado.
Existe outra prerrogativa que é caso de dados sensíveis, que seria de não armazenar ao versionamento. Dados sensíveis são: dados de conexão, dados de ftp, dados de smtp, etc. Basicamente tudo que possua um endereço (ip/dns), usuário e/ou senha;