Gestisci moduli personalizzati su più installazioni


19

Abbiamo alcuni moduli personalizzati che vengono utilizzati per più siti. Questi non possono essere rilasciati come moduli contribuiti, ad esempio perché sono specifici del client, fanno ipotesi che non funzionano per i moduli contribuiti e così via.

Conosco le seguenti possibilità per affrontare questo:

  • copiarli e incollarli. Rende ovviamente difficile mantenere il modulo aggiornato su tutte le installazioni.

  • Avere un'unica installazione multi-sito, ma questo non è sempre possibile.

  • Usa i sottomoduli git, ma possono essere cattivi, è facile dimenticare di aggiornarli e non sono sempre supportati (es. Pantheon)

  • Drush crea script da estrarre da un repository git comune. Per questo, AFAIK deve usare drush make per l'intero sito e al momento non lo usiamo.

  • http://drupal.org/project/fserver . Non l'ho ancora provato, qualcuno sa se è abbastanza stabile? La descrizione del progetto non sembra molto promettente e non esiste una versione 7.x.

Qualcos'altro / meglio? Cosa preferisci e perché?


penso che il nuovo modo di fare queste cose sia con le app: drupal.org/project/apps
mojzis,

Risposte:


10

L' approccio Drush make, come già accennato, è la versione utilizzata dal mio team.

Anche se al momento non stai usando drush make per i tuoi siti, dovrebbe essere relativamente semplice per te passare a questo flusso di lavoro se vuoi, poiché drush fornisce anche drush make-generate che genererà il file make da un sito esistente. Quindi non è necessario sentirsi come se valesse la pena solo per i nuovi siti. :)


Grazie, ho deciso di accettare la tua risposta. Devo abituarmi a fare il drush make, capire come gestirlo al meglio in grandi progetti con molti moduli personalizzati e convincere i miei colleghi prima di poter iniziare a usarlo, però;) Hai qualche risorsa su come mantenere un sito, ad esempio il modo migliore per aggiornare la versione, ricostruire un sito.
Berdir,

2
Non avevo risorse, quindi ne ho scritto uno :) drupal.stackexchange.com/questions/33403/… Certo, sentiti libero di commentare con domande più profonde se vuoi. :)
Letharion,

1

Se tutti i siti si trovano sullo stesso server, è possibile utilizzare symlinkper caricare i moduli da una posizione centrale o rsyncse si ha a che fare con più server.

Ciò risolverà il problema della distribuzione dei file, ma è comunque necessario attivare un aggiornamento. Può essere automatizzato con drush, insieme a un semplice script che chiama l'aggiornamento su ogni sito, uno per uno.


0

Sembra che sembri quasi tutto simile a tutte le soluzioni. Quando lo leggo, per prima cosa mi vengono in mente le sue altre due soluzioni rsynco, symlinkma ancora una volta non è comodo da mantenere.

Quindi ricordati di quel modulo Git Deploy che in realtà è una bella combinazione con sottomoduli git.

Non ho ancora provato questa idea, ma potrebbe funzionare, o almeno darti qualche indizio su come hackerarlo per fare il tuo sistema.


Git deploy espone le informazioni sulla versione dei moduli contrib, ma non abbiamo moduli contrib, quindi non credo che sarebbe di aiuto.
Berdir,

0

Uso un repository git separato per tutti i moduli contribuiti / personalizzati in cui ciascun modulo contributivo o personalizzato si trova in un ramo separato (non in un sottomodulo).

ecco come funziona l'unione git qui:

maestro

      <-- custom
        <-- custom module 1
        <-- custom module 2    

      <-- contrib
        <-- contrib module 1
        <-- contrib module 2     

master -> rilascio

e uno script bash / drush per aggiornare i rami


La mia soluzione si basa su questo articolo nvie.com/posts/a-successful-git-branching-model
Refineo

Hm. Quindi ho potuto quindi essenzialmente aggiungere un altro sito come telecomando e importare un ramo di modulo personalizzato da lì. Potrebbe funzionare, ma è relativamente complesso.
Berdir,

0

Uso SVN invece Git per memorizzare i nostri moduli sviluppati su misura. Dopo aver eseguito il commit delle modifiche da localhost, eseguo solo lo script bash che esegue il comando "svn update" in posizioni predefinite del server. Ogni volta che distribuisco un modulo in una nuova posizione, aggiorno lo script bash. È davvero una configurazione semplice e funziona senza problemi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.