Come si aggiorna un server drupal Live senza sovrascrivere i contenuti?


9

Ho un sito dal vivo e le persone stanno attivamente inserendo contenuti. Tuttavia, ho dovuto apportare alcune modifiche all'ambiente di sviluppo, che mi ha richiesto un paio di settimane. Le modifiche hanno richiesto l'installazione di nuovi moduli e la rimozione di quelli vecchi, il che ovviamente ha modificato il contenuto e la struttura del database.

La mia domanda è: come posso caricare nuovamente questo sito nell'ambiente live e aggiornare il database senza sovrascrivere i nuovi contenuti che i nuovi utenti sono stati aggiunti nelle ultime due settimane?


Suppongo che dovrai bloccare il sito live, ad esempio "nessun utente può applicare gli aggiornamenti", sincronizzare il sito live sul tuo server di sviluppo, applicare le modifiche e sincronizzare di nuovo. Ho la seguente configurazione: server di sviluppo (solo per aggiungere il codice degli aggiornamenti, ecc.), Un server principale - il server di sviluppo è distribuito su questo, (dove gli utenti aggiungono contenuto) e un server live (il master è distribuito su questo).
ciclico,

Risposte:


3

Thomas Zahreddin ha ragione. Ma a seconda di cosa è cambiato ("mi ci sono volute un paio di settimane ..."), ci sono più cose da considerare.

  1. Hai aggiunto / modificato i tipi di contenuto. Prova a esportarli e importarli. Assicurati di non perdere contenuti.
  2. Hai aggiunto / modificato le visualizzazioni? Puoi esportarli e importarli in sicurezza.
  3. Aggiornamenti del modulo. Provali sui dati attuali. C'è sempre la possibilità che i dati dell'utente interrompano un aggiornamento.
  4. Modifiche alla configurazione del modulo. Se non è troppo, prendi appunti e ripetili. Altrimenti prova le funzionalità e i potenti moduli braccio . Un'altra opzione è quella di capire i nomi esatti delle variabili e scrivere i valori in settings.php.
  5. Hai contenuti aggiuntivi nel sistema di sviluppo. Qui le cose diventano davvero pelose. È possibile provare il modulo di distribuzione o l' esportazione del nodo . Ma non sono proiettili d'argento.

Se non hai un caso banale, ti consiglio di testare la tua procedura in anticipo. E ovviamente esegui il backup di file e dati prima di iniziare sul sistema live. ( Backup e migrazione sono utili qui.)


1

Devi controllare cosa vuoi cambiare:

  • contenttype o bundle -> inserire il nuovo contenttype | bundle, esportare e importare i nodi o modificare il contenttype | bundle nel database per questi record
  • nome dei singoli campi e presenza di contenttypes | bundles -> ad es. con interfaccia di amministrazione o
  • valori nei campi -> compito più difficile: puoi farlo tramite SQL nel database (probabilmente) o con un modulo come migrare

1

Ho la stessa procedura da gestire al lavoro durante l'aggiornamento dei siti Web Drupal. Il problema più grande è che Drupal non fa davvero un ottimo lavoro nel mantenere contenuti e logiche separati nel suo database.

Le risposte fornite da Thomas Zagreddin e BetaRide sarebbero sufficienti a darti le migliori possibilità di completare con successo la migrazione. Non c'è davvero nessun santo graal su questo argomento.

Vorrei darti un consiglio di sviluppo, che però mi fa risparmiare un sacco di problemi nel mantenere aggiornati i nostri siti Web: cerca di mantenere il più possibile le tue logiche nel tuo codice (moduli / temi). Ad esempio, cerca di evitare di creare visualizzazioni il più possibile. A volte dovrai farlo, ma ciò richiederà un altro aggiornamento del database ...

Usa la gestione del controllo del codice sorgente!

Se sei in grado di mantenere tutto fino al codice (ovviamente, non sarai sempre in grado di farlo), puoi semplicemente utilizzare un SCM come Git , SubVersion o Mercury per aggiornare la tua fonte e, nel peggiore dei casi, tornare a un versione precedente della fonte se l'aggiornamento non funziona come previsto.

E, naturalmente, come indicato nelle risposte precedenti: backup, backup, backup, backup ...


0

Per la maggior parte delle modifiche è possibile utilizzare il Modulo funzionalità Questo modulo può modificare solo le modifiche apportate all'ambiente locale.

Altrimenti puoi utilizzare questo bellissimo modulo Backup e migrazione Installa prima questo modulo online, quindi esegui il backup di tutto il contenuto o database esistente, quindi distribuiscilo su locale. Quindi apporta al locale le modifiche desiderate, esegui nuovamente il backup del tuo locale e distribuiscilo online.


0

Ho appena avuto lo stesso problema. Per risolverlo ho notato che l'unico contenuto che avevo in live che non era in sviluppo erano i dettagli dei nuovi utenti. Sono semplicemente andato nella scheda Persone dell'amministratore e ho copiato i dettagli delle persone su dev. In dev li ho appena digitati senza alcun tipo di automazione. Quindi la prossima volta che caricherò da dev i dettagli delle persone saranno naturalmente giusti e non saranno sovrascritti.


Benvenuto nelle risposte di Drupal! Anche se sono sicuro che quanto sopra ha funzionato benissimo per te, non sembra molto robusto. Digitare le cose è soggetto a errori di battitura, e se ci sono nuove cose in diretta la prossima volta, verranno sovrascritte (a meno che non ti ricordi di digitarle di nuovo).
Radicale gratuito
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.