Temos alguns módulos personalizados que são usados para vários sites. Eles não podem ser liberados como módulos contribuídos, por exemplo, porque são específicos do cliente, fazem suposições que não funcionam para os módulos contribuídos e assim por diante.
Conheço as seguintes possibilidades para lidar com isso:
copie e cole-os. Torna obviamente difícil manter o módulo atualizado em todas as instalações.
Tenha uma única instalação multi-site, mas isso nem sempre é possível.
Use sub-módulos git, mas eles podem ser desagradáveis, é fácil esquecer de atualizá-los e nem sempre são suportados (por exemplo, Pantheon)
Drush faz scripts para fazer check-out em um repositório git comum. Para isso, você precisa usar o drush make para todo o site e não o usamos atualmente.
http://drupal.org/project/fserver . Ainda não tentei isso, alguém sabe se é estável o suficiente? A descrição do projeto não parece muito promissora e não existe a versão 7.x.
Mais alguma coisa / melhor? O que você prefere e por quê?
fonte
Respostas:
A abordagem Drush make, como você já mencionou, é a versão que minha equipe está usando.
Mesmo que você atualmente não esteja usando o drush make para seus sites, deve ser relativamente simples mudar para esse fluxo de trabalho, se desejar, pois o drush também fornece drush make-generate, que gerará o arquivo make a partir de um site existente. Portanto, não é necessário sentir que vale a pena apenas para novos sites. :)
fonte
Se todos os sites estiverem no mesmo servidor, você poderá usar
symlink
para carregar módulos de um local central oursync
se estiver lidando com vários servidores.Isso resolverá o problema de distribuição de arquivos, mas você ainda precisará disparar uma atualização. Ele pode ser automatizado
drush
, juntamente com um script simples que chama a atualização em todos os sites, um por um.fonte
Parece que você quase parece muito com todas as soluções. Quando li isso, primeiro o que vem na minha mente suas duas outras soluções como
rsync
ousymlink
mas novamente não é confortável para manter.Então, nos lembramos do módulo Git Deploy que, na verdade, é uma boa combinação com os submódulos git.
Ainda não tentei essa idéia, mas ela poderia funcionar, ou pelo menos lhe dar uma pista de como hackear para criar seu próprio sistema.
fonte
Eu uso um repositório git separado para todos os módulos contribuídos / personalizados, onde cada módulo contribuído ou personalizado está em uma ramificação separada (não em um submódulo).
aqui está como o merge git funciona aqui:
mestre
master -> release
e um script bash / drush para atualizar as ramificações
fonte
Em vez disso, uso o SVN Git para armazenar nossos módulos personalizados. Após confirmar a alteração do localhost, apenas executo o script bash, que executa o comando "svn update" em locais predefinidos do servidor. Sempre que implanto um módulo em um novo local, atualizo o script bash. É realmente uma configuração simples e funciona sem qualquer aborrecimento.
fonte