Abbiamo scritto uno script per gestire i dump di DB per il branching. Leggi questo articolo .
Il principio base è che legge il local.xml
per recuperare le credenziali del DB, quindi scarica i dati su quella base. Suddivide il dump in due parti, solo la struttura e quindi i dati. Ma la chiave è che accelera il processo di dump convenzionale saltando i dati non essenziali , e soprattutto impedisce in modo critico qualsiasi blocco delle tabelle durante il dump che altrimenti bloccherebbe / bloccherebbe il tuo sito live.
Quando hai il dump di MySQL, puoi cambiare l'URL molto facilmente semplicemente usando sed
sed -i 's/www.mydomain.com/staging.mydomain.com/g' ./var/db.sql
Quindi esegui un'importazione mysql nel tuo nuovo DB.
Quindi senza lo script, una versione molto semplice sarebbe simile a questa.
mysqldump -hHostname -uUsername LiveDbname -p > db.sql
sed -i 's/www.mydomain.com/staging.mydomain.com/g' db.sql
mysql -hHostname -uUsername DevDbname -p < db.sql
Non vi è alcun motivo per cui è necessario eliminare il file local.xml o rieseguire il programma di installazione se si modificano gli URL nel DB in questo modo.
L'intero processo di ramificazione è ben coperto nella nostra Guida GIT di Magento . Questo è un buon processo per la creazione di rami di sviluppo, ma riduce il DB attivo di un margine significativo. Quindi i test non saranno completamente gli stessi del sito live.
Quindi, eseguendo un dump DB vanilla, sed sostituzione, l'importazione DB è sufficiente per un sito di staging. E rispecchierà / abbinerà il sito live il più vicino possibile.
In termini di prevenzione delle comunicazioni con i clienti, non l'abbiamo mai trovato una necessità, poiché creiamo sempre account deliberatamente per i test, senza mai utilizzare gli ordini dei clienti reali per i test.