2010-02-24 13 views
5

Sono un po 'perso, uno dei miei collaboratori dello sviluppatore sta facendo un sito web drupal, che sta facendo pagine speciali, loghi personalizzati, gerarchia personalizzata ecc. Il suo lavoro è sparpagliato nel database tabelle (sembra che CCK crei tabelle), file di database (testi, collegamenti immagine ecc.), file statici (immagini, PDF ...) e forse alcuni PHP (modulo personalizzato).Come gestire un sito web drupal in git

Il mio problema è ottenere il suo lavoro nel repository git e poterlo distribuire su vari server in modo coerente, come farei con il lavoro tradizionale degli sviluppatori (diciamo J2EE). Uno dei miei vincoli è evitare l'SQL raw perché potremmo distribuire lo stesso codice su vari RDBMS. Ma se devo farlo, rilasserò questo vincolo.

Non riesco a trovare un modulo che lo faccia fuori dalla scatola, hai qualche puntatore che avrei potuto perdere sul sito web di drupal?

Grazie per il vostro aiuto,

Nicolas.

risposta

4

Utilizzando Caratteristiche insieme Context è molto potente. Il contesto ti consente di creare una "sezione" per il tuo sito. La cosa migliore è illustrata attraverso un esempio:

Diciamo che definiamo il contesto "Forum" come qualsiasi cosa con l'URL di forum/*. Diciamo: "Voglio mostrare queste tre viste nella barra di destra, solo quando sono nel contesto" Forum "

Ora, utilizzando le funzionalità, possiamo creare" modulo "definito dal contesto. Quindi, ci ritroveremo con un modulo chiamato "youSite_forums", che includerà tutte le viste, i blocchi, ecc. Definiti nel contesto del tuo forum e determinerà anche le dipendenze corrette, così come i tipi di contenuto usati nel contesto . Tutti saranno in bundle su piacevolmente in un modulo.


per quanto riguarda il controllo delle versioni contenuti come nodo, è possibile utente o nodo di esportazione, o semplicemente fare un dump di DB utilizzando Backup e migrazione. usiamo questi di tanto in tanto, ma non abbiamo mai versione di ogni nodo in SVN.


vicini:

Features

Context

Backup and Migrate

+1

Sono assolutamente d'accordo con Erik. Per un controllo ancora maggiore, suggerirei anche di esaminare il modulo Strongarm. Se stai cercando ulteriori informazioni sulla gestione del processo di distribuzione, puoi trovare un articolo più lungo su http://www.opc.com .au/web-development/drupal-release-management-drush-and-git –

4

Il modulo potrebbe farti desiderare di andare. Permette di esportare varie configurazioni di siti e moduli. Le esportazioni sono sotto forma di un modulo Drupal personalizzato che è possibile quindi archiviare e gestire tramite git e successivamente distribuire le funzionalità su altri siti Drupal.

http://drupal.org/project/features

maggiori informazioni (e uno screencast) sul modulo:
http://developmentseed.org/blog/2009/may/29/making-and-using-features-drupal

+0

Grazie, questo è davvero interessante, e con un tale nome, non ho guardato a prima. Ci proverò oggi. – nraynaud

+0

Peccato, una funzionalità non incorpora il contenuto del database. Per il nostro problema non è d'aiuto, ma ci aiuterà su altri aspetti dello sviluppo, grazie. – nraynaud

+0

Per "contenuto del database" intendi il contenuto dei nodi? (Le configurazioni che Esportazioni funzionalità sono memorizzate nel database per impostazione predefinita.) – ashtonium

2

Si potrebbe anche voler guardare in servizi & distribuzione. La distribuzione utilizza i servizi server xmlrpc per trasmettere la maggior parte dei dati drupal da un sito a un altro o, nel caso, l'installazione dei vostri sviluppatori a un'installazione di gestione temporanea.

http://drupal.org/project/Services

http://drupal.org/project/deploy

Per quanto riguarda un metodo per "distribuire su vari server in modo coerente" guardare in Capistrano con railsless da implementare. È così semplice configurare alcune attività, io lo uso per distribuire tutti i miei siti drupal.

http://www.capify.org/index.php/Capistrano

http://github.com/leehambley/railsless-deploy

+0

il punto del mio settaggio è che non esiste una connessione diretta tra dev e staging, dovrebbe passare da git tra di loro. In modo che possa tornare indietro nel tempo, ho lo stesso "ritmo di versione" per file, nodi e temi ecc. La mia intera "applicazione" è molto più di un modulo drupal, e non mi fido di Drupal abbastanza per fare è il componente principale della nostra offerta. Mi limiterò a "integrarmi" con esso. – nraynaud

+0

Probabilmente il modo più semplice per andare con contesto e funzionalità. Almeno è possibile memorizzare la funzionalità in un repository e abilitarlo come preferisci. – unn

+0

Anche se questo è sempre il problema che si incontra con Drupal ... si hanno tutte queste viste, blocchi nel database, come si ottiene costantemente da un posto all'altro. – unn

Problemi correlati