Minha equipe e eu estamos trabalhando com um cliente que possui um site WordPress existente com um pouco de conteúdo e um tema personalizado que eles criaram. É um blog de grupo, o que significa que tem vários blogueiros em todo o mundo que estão adicionando e editando conteúdo o tempo todo.
Nosso trabalho é criar um tema totalmente novo, com alguns recursos novos. Alguns desses recursos exigirão novos widgets, plugins e campos de banco de dados personalizados.
Atualmente, estamos trabalhando em nossas próprias máquinas de desenvolvimento e integrando-as em um único servidor de desenvolvimento. Todo o código é versionado no SVN. Nosso DBA apontado está mesclando manualmente quaisquer alterações do banco de dados no banco de dados do desenvolvedor no momento, embora esperemos que ele possa automatizar isso em breve.
Começamos a conversar sobre nosso processo de lançamento da produção. Significado: assim que terminarmos, como colocaremos todo o nosso código personalizado no servidor de produção (ao vivo) sem problemas e com a menor interrupção possível?
Temos alguns planos em mente, mas eu gostaria de saber como outras pessoas também resolveram esse problema. Existem práticas recomendadas a serem seguidas ou armadilhas conhecidas a serem evitadas?
Não tenho certeza se isso é aplicável, mas acabei de passar por um processo semelhante de migrar e atualizar simultaneamente um site de alto tráfego.
A estratégia básica era trabalhar em um servidor intermediário, quando tudo estiver pronto, faça um despejo mysql no servidor ativo, importe-o para o servidor intermediário, faça qualquer limpeza necessária e aponte os registros DNS para o servidor intermediário, causando a servidor de teste para se tornar o novo servidor ativo.
A parte complicada é mesclar todos os dados acumulados durante a propagação do DNS no servidor intermediário (que agora é o servidor ativo). Em outras palavras, se passarem 30 horas entre o momento em que você faz o DNS despejo / atualização do mysql e quando a propagação do DNS estiver concluída, você terá que mesclar seletivamente 30 horas de registros do site antigo para o novo.
Não é um processo contínuo, mas quando passamos uma semana no caminho, todas as torções haviam se resolvido.
fonte
@ Mike Lee: Ótima pergunta, e um dos santos grails do WordPress (ou qualquer um dos CMSs de código aberto mais conhecidos com o qual estou familiarizado, como Drupal, Joomla, et al.)
Embora certamente não seja para abordar seu caso de uso, confira minha resposta a uma pergunta relacionada que descreve um plug-in de nível beta que acabei de disponibilizar via WordPress Answers Exchange chamado WP Migrate Webhosts (sim, sou péssimo quando se trata de nomeação de criativos .)
Mas também quero resolver o caso de uso que você descreve com um plug-in e atualmente estou pensando em como fazer isso. Estou pensando que a maneira de abordá-lo é desistir de resolvê-lo de maneira genérica e, em vez disso, abordar os padrões conhecidos existentes no WordPress e permitir que qualquer outra pessoa " conecte " meu plug-in para casos de uso especiais. Também estou pensando que uma abordagem é serializar os dados e as estruturas no WordPress como dados em um arquivo PHP, para que um futuro plugin possa aplicar essas alterações como deltas, assim como um sistema de controle de código-fonte aplica deltas para chegar à versão atual da fonte código.
Portanto, enquanto não estiver respondendo ou resolvendo seu problema por completo, espero dar a você um bom alimento para pensar e também esperar que você ou outra pessoa queira colaborar em uma solução eventual.
fonte