Como migrar do ambiente de teste para o ambiente de produção?


46

A migração é do ambiente local para o ambiente de produção. O ambiente de produção demorou algum tempo e criou muitos artigos.

Para adicionar coisas novas ao meu site, adicionei um tema personalizado e instalei o CCK, Views e outros módulos no meu ambiente de teste local. Agora que o ambiente de teste local está concluído, como faço para migrá-lo para o ambiente de produção, sem destruir o conteúdo do banco de dados?

Respostas:


34

Esse é um problema não trivial para o qual quase todo mundo tem uma resposta diferente: não existe uma maneira canônica do Drupal de lidar com a preparação para os impulsos de produção. Dries Buytaert, o cara que dirige o programa Drupal, fez dele uma das principais iniciativas do Drupal 8 . É claro que o Drupal 7 acabou de ser lançado, então levará um tempo até que dê frutos.

O problema pode ser dividido em dois problemas separados:

  • Configuração de teste (variáveis, tipos de conteúdo, campos, visualizações etc.)
  • Preparar o conteúdo (nós, usuários, etc.)

O primeiro pode ser tratado principalmente pelo módulo de Recursos , que pega a configuração do site e o transforma em um módulo que você pode adicionar à sua instalação do Drupal: dessa forma, você pode adicioná-lo ao seu sistema de controle de versão e não ter que se preocupar com isso. sendo surpreendido quando você migra seu conteúdo.

O último é realmente complicado, porque em um site ativo, é provável que o conteúdo seja alterado na produção, mesmo após a sincronização inicial com o ambiente de desenvolvimento. Isso evita a substituição por atacado de conteúdo durante a preparação, como você pode fazer na configuração.

Além disso, o Drupal não usa identificadores universalmente exclusivos (UUIDs) para conteúdo: toda vez que um nó ou usuário é adicionado, o ID aumenta em um. Portanto, o que pode ser o nó 45 no seu site de desenvolvimento pode ser o nó 90 no seu site de produção.

Infelizmente, não tenho uma ótima solução para isso: a preparação do conteúdo é uma verdadeira fraqueza do Drupal. O que eu pessoalmente faço é adicionar conteúdo apenas no site de produção. Se um cliente quiser ver a aparência do conteúdo antes de ser publicado, configurarei um clone do site de produção que é acessível apenas ao cliente. Então, uma vez aprovadas, as mesmas alterações são feitas diretamente na produção.

Há outra alternativa que é lançada: o módulo Deploy . Ele deve alavancar os Serviços para tornar o conteúdo da preparação relativamente indolor. Mas não posso garantir sua eficácia e ele não possui uma versão do Drupal 7.


Você pode migrar o conteúdo usando uuid e uuid_features, mas ainda não é tão confiável.
Jeremy French

7

Em nosso processo.

  1. Temos um shell script que extrai o db do prod.
  2. Estamos usando o Hudson para reconstruir nossas ramificações de desenvolvimento / teste para sincronizar ramificações ao vivo e dev.

    Como estamos usando o Git, todas as tarefas que realizamos têm sua própria ramificação e, quando passadas para o controle de qualidade, a mesclamos para dominar como nosso servidor de teste para testes de regressão.

    Quando o master está pronto, fazemos uma versão de teste para o nosso, Release Serverque é uma réplica do live (configuração, hardware, etc.).

  3. Usamos o Featuremódulo para implantar configurações. Alguns materiais ainda não são suportados pelo recurso, portanto, usamos hook_update_N e, em seguida, executamos updatedb.php oudrush -vd updb

  4. Após o lançamento, execute os recursos revert ( drush fra --yes) para reverter todos os recursos substituídos.
  5. Como estamos usando o Boost (movendo-se para o Varnish) e o Memcache, precisamos limpar o cache ( drush cc all).

    Estamos usando o rsync para sincronizar nossas imagens / vídeo etc ...


Você pode elaborar a etapa 2 - Usando o Git Entendo que podemos mesclar facilmente qualquer alteração no sistema de arquivos, mas como garantir a integridade do banco de dados? Além disso, qual é exatamente o objetivo de usar "Recursos" (para implantar configurações) aqui? Obrigado!
Raj Pawan Gumdal

2

Para migrar de um servidor XAMPP para outro servidor, segui as instruções neste site .

Certifique-se de manter a mesma estrutura em seu servidor de produção como em seu servidor de desenvolvimento. Também precisei editar alguns arquivos no painel de administração do Drupal, localizado em: admin / config / media / file-system

Verifique se o caminho do sistema de arquivos público e o diretório temporário têm os locais corretos definidos.


Isso nunca fala sobre o problema da "fusão". A pergunta afirma claramente que a produção possui dados de conteúdo que precisam estar intactos, enquanto os aprimoramentos do servidor de temporariedade precisam ser mesclados na produção.
Raj Pawan Gumdal
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.