No trabalho, estamos nos movendo para configurar nossos novos sites no git e desenvolver desenvolvimento local. Até agora, criei um arquivo make drush junto com um perfil de instalação, e eu o tenho em script via fantoche, para que, quando um usuário fizer um novo clone de um repositório, ele baixe todos os pacotes e execute uma instalação básica do site. Isso funciona bem.
Agora, minha pergunta é para quando eu preciso usar um novo módulo para um site. Por exemplo, criamos um novo módulo para o site. Eu quero que os outros desenvolvedores retirem do git e tenham o novo módulo instalado automaticamente. Adicioná-lo ao arquivo make drush fará com que ele seja baixado e a execução de 'drush si' fará com que o site seja reinstalado, eliminando todos os dados.
Qual é a melhor maneira de conseguir isso?
Editar
Sinto que não expliquei isso direito. Estou procurando uma maneira de ativar automaticamente os módulos com base nas entradas do makefile no drush. A idéia é que o usuário faça check-out de um projeto e, em seguida, executarei o fantoche 'drush make' e 'drush si' se não houver um arquivo settings.php. O que eu preciso descobrir é para quando, na próxima vez em que o usuário fizer um puxão e adicionarmos um novo módulo, como habilitá-lo automaticamente através de algum script. Se precisar, escrevo algo para analisar o makefile e executar 'drush en' manualmente, mas gostaria de encontrar algo pré-criado para fazer isso.
fonte
Respostas:
Eu trabalhei para uma empresa que tinha um grande fluxo de dev / stage / prod que tentava automatizar o máximo possível. Tudo tinha que ser feito em código, com script ou usando recursos ou ganchos de atualização.
Basicamente, o que você deseja é ter um módulo personalizado existente para conter ganchos de atualização. Dessa forma, quando um desenvolvedor puxa uma atualização para a base de código, ele executa a atualização do banco de dados e isso pode executar qualquer ativação / desativação do módulo que precise acontecer. Os ganchos de atualização não afetam uma nova instalação, porque supõe-se que o módulo já esteja atualizado quando estiver instalado e executará apenas atualizações mais recentes.
Para resumir:
Aqui está um post que fala sobre uma abordagem semelhante e fornece exemplos de código.
fonte
Esta é uma grande pergunta.
drush make
é conveniente para baixar módulos. Não queremos contribuir para o inchaço do módulo. Por aqui, o caso é feito para não se estendermake
dessa maneira. Talvez o Features seja melhor para gerenciar o estado ativado do módulo do site, bem como outros aspectos de configuração.fonte
Considere modificar seu fluxo de trabalho.
Parece que você deseja fazer um trabalho distribuído e "compartilhar" módulos de habilitação e outros valores de configuração ... de alguma forma.
Se você pensar bem, mesmo o Drupal "core" e o Drupal.org não fazem isso. O código é enviado aos módulos Principal e da comunidade, que são executados em um Processo de Construção Contínuo. Drupal.org e muitos projetos usam Jenkins.
Para uma instalação do Jenkins voltada para o desenvolvimento do Drupal, ele também usa o Phing, consulte este repositório do git: http://reload.github.io/jenkins-drupal-template/
Usando o Jenkins, você pode enviar o código ao seu repositório principal do Git e criar o site para um site de demonstração a partir do seu perfil de instalação e dos arquivos de composição de drush. Isso não resolve seu problema exatamente, mas fornece 1 local em que todos pressionam alterações para adicionar / ativar / excluir módulos e, esperamos, que todos vocês não "quebrem a compilação".
Supondo que a compilação não esteja quebrada - é seguro inserir as alterações no sistema de desenvolvimento local.
O servidor Jenkins + Staging ou Development é apenas 1 parte do desenvolvimento.
Seu fluxo de trabalho local pode usar perfis de instalação + makefiles. Considere compartilhar conteúdo usando módulos personalizados com o Migrate se você puder pagar o tempo de geração de conteúdo. Exemplos de compartilhamento de conteúdo com desenvolvedores usando Migrate e uso de Phing podem ser lidos aqui:
http://marzeelabs.org/blog/2014/03/17/coding-as-a-team-content-fixtures/ http://marzeelabs.org/blog/2014/03/03/coding-as-a- automação de equipe usando phing /
Por fim, consulte este PDF em uma sessão do Drupal Camp Ohio 2014 sobre integração contínua e trabalho com sua equipe:
fonte
Para o mesmo propósito, estamos usando o Master . Ele usa o settings.php para fornecer informações sobre o que são os módulos principais. Com um comando simples
drush master-execute
todos os módulos (e suas dependências) ausentes são ativados e os módulos que não são mais usados são desativados.Atualmente, o módulo não lê as informações do makefile, mas talvez isso possa ser uma opção para uma nova versão.
fonte
Você pode ativar os módulos manualmente, passando pela opção Módulos ou pelo terminal usando o comando drush
e assim por diante.
fonte
Os módulos podem ser ativados de 2 maneiras:
do terminal usando o comando drush :
A.
drush dl modulename
- para fazer o download do módulo em primeiro lugarB.
drush en -y modulename
- para ativar o móduloUtilizando a opção de menu Módulo e ativando o módulo a partir do número de módulos sendo exibidos.
fonte
module_enable()
por exemplo. Ou importando um banco de dados preparado.Eu quero alguns isso que tenha certeza. A função make é usada para baixar as diferentes partes do site: módulo, temas e projeto via git. Ao escrever seu perfil de instalação, você está escrevendo no arquivo info os módulos dependentes. O problema é quando você precisa adicionar um novo módulo ao seu perfil de instalação para o perfil existente - estou correto?
Para isso, você precisa usar o hook_update_N quando N representar a atualização do número. O gancho é usado para o módulo que precisa executar ações como: atualizar esquemas, adicionar variáveis e usado para sites e distorção, como o OpenScholar, para ativar novos módulos baixados no site ativo.
Você provavelmente precisará adicionar isso no módulo mais genérico e a função será semelhante a https://github.com/openscholar/openscholar/blob/SCHOLAR-3.x/openscholar/modules/os/os.install#L16
O gancho precisa estar localizado no arquivo module.install. Se você estiver usando a interface do usuário, precisará acessar www.site.com/update.php e, se estiver usando drush, use o comando drush updb.
fonte
Pelo que entendi, o arquivo Drush .make baixa apenas projetos do drupal.org, se você deseja ativar alguns módulos, pode fazer com um perfil de instalação ** (. Install) **. Um perfil de instalação fornece opções, quais módulos você deseja ativar no momento da instalação.
Recentemente, também contribuí com uma distribuição com a ajuda do arquivo .make. Até eu compartilhei toda a experiência do .make aqui . Sei que isso não está relacionado exatamente ao que você está perguntando, mas pode ajudá-lo a entender o que exatamente o arquivo .make faz.
Então, de toda essa tarefa, o que eu entendo, usando .make arquivo você não pode automatizar a ativação do módulo. Para fazer isso, você precisa seguir outra abordagem.
Espero que este URL do fórum possa ajudá-lo. Automação Drupal com script Bash e Drush .
Você precisa escrever algum script bash onde exatamente você usará os comandos Drush.
fonte
Que tal usar um arquivo Drush Make em conjunto com um perfil de instalação do Drupal? veja: https://drupal.org/node/1022020
fonte