Estou postando esta pergunta porque gostaria de saber qual é o melhor fluxo de trabalho de desenvolvimento para alguém que deseja gerenciar todos os aspectos de uma loja online.
Como em todo o desenvolvimento da Web, é claro, é muito importante ter uma cópia ao vivo e pelo menos uma cópia de desenvolvimento de toda a solução de software. No entanto, gerenciar coisas do Magento não é como gerenciar outro software "baseado em arquivo", porque também existe um componente de banco de dados que entra em jogo; portanto, além do fato de eu poder usar uma ferramenta como o Git como uma ferramenta VCS para controle de origem, como Eu administro diferenças no banco de dados entre as versões ao vivo e de desenvolvimento?
É claro que eu poderia fazer backups do banco de dados ao vivo via cron e inserir as instruções SQL INSERT do backup no controle de origem, mas depois disso dois bancos de dados evoluirão separadamente enquanto os clientes registram e fazem pedidos por um lado, que entram no banco de dados ao vivo e como atualizações são feitas no banco de dados de desenvolvimento separadamente. Quando se trata de mesclar desenvolvimento e versões ao vivo, os arquivos php podem ser atualizados sem problemas via git (usando gitignore no único arquivo que hospeda os detalhes de configuração do banco de dados), mas e os arquivos de banco de dados? Como mesclar os dois arquivos que contêm instruções SQL INSERT dos dois backups sem causar um desastre e destruir o sistema?
Esta é a área sombria do ciclo de vida de desenvolvimento do Magento que estou enfrentando: gerenciando diferenças de banco de dados.
Parece-me que a única solução para sincronizar o conteúdo do banco de dados que diferem entre as versões de desenvolvimento / teste e ao vivo da loja Magento é anotar em um pedaço de papel todas as alterações feitas na versão de desenvolvimento pelo painel de administração do Magento, e espero não cometer erros e, depois que tudo for testado e funcionar, vá para a versão ao vivo e realize exatamente as mesmas mudanças enquanto o Magento é colocado offline e colocado no modo de manutenção. Como este é um processo manual, ele é propenso a erros.
Então, qual é a melhor maneira de lidar com a sincronização de banco de dados entre o servidor magento de teste e o servidor magento ativo?
Obrigado.