Fluxo de trabalho de desenvolvimento Magento: como “controlar o banco de dados” e atualizar a instalação ao vivo do Magento a partir da instalação Testar magento?

17

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.

John Sonderson
fonte
2
para configuração: github.com/punkstar/mageconfigsync
B00MER 13/11/13

Respostas:

3

Opções que eu conheço

1.) Manual - em outras palavras, repetir suas ações manualmente no back-end = como você mencionou propenso a erros, reduza a velocidade

2.) No nível do banco de dados com consultas SQL diretas = propenso a erros

3.) Crie uma extensão que adicione, faça alterações através de scripts de configuração / atualização do sql. Esses arquivos fazem parte do seu repositório e podem ser implantados. Essa abordagem ignora principalmente a interface do usuário.

4.) Houve algum trabalho em andamento na tentativa de tornar parte desse fluxo de trabalho mais agradável em projetos como este , mas acho que ainda não está pronto para o horário nobre.

De todas essas opções, atualmente sou a favor do 3.)

Kristof na Fooman
fonte
Sim, eu também sou a favor de 3. Quem não faria. No entanto, como 3 é a única opção real e ainda não é estável, ignorarei todas as sugestões e apenas testarei com o objetivo de compreender como a interface do usuário funciona no servidor local e executar todo o catálogo de produtos e produtos e outras atualizações diretamente no servidor ativo, possivelmente deixando-o offline por algum tempo, ou melhor, apenas tomando cuidado para tornar os produtos ativos quando estiverem prontos, pois, de qualquer forma, terei que ter cuidado, por que não ter cuidado dessa maneira, o que provavelmente pode causar o menor dano possível de 1 e 2 de qualquer maneira. Thx
John Sonderson
3.) é estável, reproduzível e baseada em arquivos - a desvantagem é que requer mais trabalho para configurar.
Kristof at Fooman
1

Há um mageploy que pode resolver esse problema também.

Fabian Blechschmidt
fonte
Por enquanto, ninguém na mageploy atualizou seu site. Ele ainda afirma que é apenas para o Magento 1.7.0.2
Max
1

Existem ferramentas de banco de dados como o Toad para MySQL da Quest Software (agora Dell). Essa ferramenta de gerenciamento de banco de dados possui recursos de comparação de dados e estrutura que você pode usar para ver alterações entre dois bancos de dados. Apenas mantenha os backups (ou git commit) das versões do banco de dados que você deseja comparar e pronto. Existe até um gerador de scripts para sincronizar os dois.

Aaron Dake
fonte
1

Resolvemos esse problema criando um banco de dados remoto para os desenvolvimentos local e intermediário para leitura / gravação. Realmente ajuda com tempo e eficiência; não é mais necessário clonar, carregar o banco de dados no ambiente de todos.

Nam Bui
fonte