Como você atualiza um servidor Live drupal sem substituir o conteúdo?

9

Eu tenho um site que está ao vivo e as pessoas estão colocando ativamente conteúdo. No entanto, tive que fazer algumas mudanças no ambiente de desenvolvimento, o que me levou algumas semanas para fazer. As mudanças exigiram a instalação de novos módulos e a remoção dos antigos, o que, naturalmente, alterou o conteúdo e a estrutura do banco de dados.

Minha pergunta é como faço para carregar este site de volta ao ambiente ativo e atualizar o banco de dados sem sobrescrever o novo conteúdo que novos usuários foram adicionados nas últimas duas semanas?

blue928
fonte
Eu acho que você terá que bloquear o site ativo, ou seja, "nenhum usuário pode aplicar atualizações", sincronizar o site ativo com o servidor de desenvolvimento, aplicar suas alterações e sincronizar novamente. Eu tenho a seguinte configuração: Servidor de desenvolvimento (apenas para adicionar código de atualizações etc), um servidor Mestre - o servidor de desenvolvimento é implantado para isso, (onde os usuários adicionam conteúdo) e um servidor ativo (o mestre é implantado neste).
Cyclonecode

Respostas:

3

Thomas Zahreddin está certo. Mas, dependendo do que mudou ("demorou algumas semanas ..."), há mais coisas a considerar.

  1. Você adicionou / alterou tipos de conteúdo. Tente exportar e importá-los. Verifique se você não está perdendo conteúdo.
  2. Você adicionou / alterou visualizações? Você pode exportar e importar com segurança.
  3. Atualizações do módulo. Teste-os com dados atuais. Sempre há uma chance de os dados do usuário quebrarem uma atualização.
  4. Alterações na configuração do módulo. Se não for demais, faça anotações e refaça-as. Caso contrário, experimente os recursos e os módulos de braço robusto . Outra opção é descobrir os nomes exatos das variáveis ​​e escrever os valores no arquivo settings.php.
  5. Você tem conteúdo adicional no sistema dev. Aqui as coisas ficam realmente peludas. Você pode tentar o módulo de implementação ou a exportação de nó . Mas eles não são balas de prata.

Se você não tem um caso trivial, sugiro testar seu procedimento com antecedência. E, é claro, faça backups de arquivos e dados antes de iniciar no sistema ativo. (O Backup and Migrate é útil aqui.)

BetaRide
fonte
1

Você precisa verificar o que deseja alterar:

  • contenttype ou bundle -> insira o novo contenttype | bundle, exporte e importe os nós ou altere o contenttype | bundle no banco de dados para esses registros
  • nome de campos únicos e ocorrência de tipos de conteúdo | pacotes -> por exemplo, com interface de administrador ou
  • valores nos campos -> tarefa mais difícil: você pode fazer isso via SQL no banco de dados (provavelmente) ou com um módulo como migrate
Thomas Zahreddin
fonte
1

Eu tenho o mesmo procedimento para lidar no trabalho ao atualizar sites do Drupal. O maior problema é que o Drupal realmente não faz um ótimo trabalho em manter o conteúdo e a lógica separados em seu banco de dados.

As respostas fornecidas por Thomas Zagreddin e BetaRide seriam suficientes para oferecer a melhor chance de concluir a migração com êxito. Realmente não há santo graal sobre este assunto.

Gostaria de lhe dar uma dica de desenvolvimento, o que me poupa muitos problemas em manter nossos sites atualizados: tente manter sua lógica o máximo possível em seu código (módulos / temas). Por exemplo, tente evitar criar vistas o máximo possível. Às vezes você precisará, mas isso exigirá outra atualização do banco de dados ...

Use o Gerenciamento de controle de origem!

Se você conseguir manter tudo no código (é claro, você nem sempre poderá fazer isso), poderá simplesmente usar um SCM como Git , SubVersion ou Mercury para atualizar sua fonte e, na pior das hipóteses, reverter para um versão anterior da sua fonte, se a atualização não estiver funcionando conforme o planejado.

E, é claro, conforme abordado nas respostas anteriores: backup, backup, backup, backup ...

Ambidex
fonte
0

Para a maioria das alterações, você pode usar o Módulo de Recursos Este módulo pode alterar apenas as alterações, o que você fez no ambiente local.

Caso contrário, você pode usar este belo módulo Backup e Migração Apenas instale este módulo on-line primeiro, faça o backup de todo o conteúdo ou banco de dados existente e implante-o no local. Em seguida, faça alterações no local como desejar, faça novamente o backup do local e implante-o on-line.

Rishi
fonte
0

Eu apenas tive o mesmo problema. Para resolvê-lo, observei que o único conteúdo que eu tinha no live que não estava no dev eram novos detalhes do usuário. Simplesmente entrei na guia Pessoas do administrador e copiei os detalhes das pessoas no dev. No dev, eu apenas digitei sem nenhum tipo de automação. Portanto, da próxima vez que eu fizer o upload do desenvolvedor, os detalhes das pessoas estarão naturalmente corretos e não serão substituídos.

Michael O'Callaghan
fonte
Bem-vindo às respostas do Drupal! Embora eu tenha certeza de que o item acima funcionou muito bem para você, não parece muito robusto. Digitar coisas é propenso a erros de digitação e, se houver novas coisas ao vivo na próxima vez, elas serão substituídas (a menos que você se lembre de digitá-las novamente).
Free Radical