Estou trabalhando para melhorar meu fluxo de trabalho git, conforme ele se aplica aos meus projetos de desenvolvimento WordPress. Freqüentemente, ao desenvolver um sistema de gerenciamento de conteúdo, criarei um servidor de desenvolvimento (como http://dev.finalsitename.com
) contendo os tipos de postagens personalizadas e taxonomias que serão usadas na versão de produção. Isso permite que meu cliente comece a adicionar seu conteúdo ao site.
Enquanto eles estão trabalhando nessa tarefa, geralmente desenvolvo a aparência e os plugins / programação personalizados que serão usados no meu ambiente de host local. Para garantir que eu não sobrescreva nenhuma de suas atualizações, geralmente puxo uma cópia do banco de dados e substituo o meu. No entanto, há momentos em que eu só preciso entrar na área de administração do WP e alterar uma configuração ou outra coisa pequena ...
Se houver vários desenvolvedores trabalhando em um projeto WordPress, cada um de nós fará um despejo de banco de dados (com registro de data e hora) de nossa versão do site e incluirá no diretório raiz antes de confirmar e enviar sua ramificação local de volta ao repositório remoto. O problema dessa abordagem é que os bancos de dados geralmente estão fora de sincronia, sem uma maneira fácil de determinar qual usar.
O que outros desenvolvedores estão fazendo para manter seus bancos de dados sincronizados e, ao mesmo tempo, permitir que vários desenvolvedores (e clientes / produtores de conteúdo) trabalhem no mesmo projeto?
fonte
Sinto muito se isso parece incrivelmente óbvio, mas se todos vocês precisam ter a mesma cópia do banco de dados com a mesma estrutura, não faria sentido ter um servidor SQL central / de escritório e usá-lo? Clone-o localmente se você precisar experimentar, mas mantenha-o como padrão padrão oficial e faça backups desse servidor e somente desse servidor.
Caso contrário, quando estou trabalhando em um projeto de grupo, temos nossas próprias configurações com conteúdo diferente. O código cuida da atualização e migração das estruturas da tabela e podemos acessar as instalações locais do código em execução em nossas máquinas pela LAN, para que não haja necessidade de compartilhar conteúdo.
Se estivermos inserindo conteúdo, executamos em um servidor de teste, o qual podemos exportar e importar para o servidor ativo ou podemos migrar diretamente para o servidor de produção, se nenhuma instância ativa existir atualmente.
Se a qualquer momento você precisar de uma separação de dados ativos de teste e WIP, use apenas uma ramificação ativa, de teste e de desenvolvimento em seu repositório
fonte