Per far fronte a questo tipo di DEV e ambiente di produzione, ho scritto uno script perl per aiutarmi con quello che altrimenti sarebbe un lavoro manuale. Ho dato alcuni passaggi ai nomi familiari, quindi ricordo di eseguirli nell'ordine corretto. Ho solo DEV sotto SVN. Creo ogni volta un ambiente PRODUCTION con questo script. In questo modo non devo preoccuparmi di mantenere 2 rami di codice.
Sto usando SVN quindi ho scelto una nuova directory di checkout (come/tmp/foobar) del mio codice DEV. Non ci sarà molto tempo.
step 0 opzionali: diff strutture di database
mysqldump -d -u USER -pPASS mydotcom > production.sql
mysqldump -d -u USER -pPASS mydotcom_dev > development.sql
vim -d production.sql development.sql
volte plugin aggiungerà tabelle, e questo sarà mostrare che. Altrimenti ripeto le modifiche apportate all'interno delle tabelle (installa un plugin) quando non vale la pena di diffare certe tabelle e copiare istruzioni SQL.
passaggio 1 clean: Lo script cancella tutti i file nella directory corrente, esegue un nuovo controllo svn del ramo DEV. Questo nuovo check-out verrà trasformato nel codice PRODUCTION e copiato nel suo webroot.
punto 2 codice: perl esegue una ricerca vim e sostituisce il nome del database in wpconfig.php. La ricerca e la sostituzione sono altrettanto facilmente eseguite in Perl.
system('vim -c "%s/define(\'DB_NAME\', \'mydotcom_dev\'/define(\'DB_NAME\', \'mydotcom\'/g | w | q" wp-config.php');
Rimuovere la directory di caricamento file locale (in modo da non sovrascrivere quella PRODUCTION). wpcontent/uploads Credo che sia su un'installazione standard.
Un'altra ricerca e sostituzione su tutti i file di testo all'interno del progetto che hanno la mia DEV URL, ad esempio
vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php
fase 3 di installazione. Salvare il wpcontent/uploads con dircopy() per sicurezza. Fai un dircopy() di questa directory ripulita al webroot PRODUCTION. Rimuovere tutte le directory .svn all'interno della webroot in questo modo:
find /PRODUCTION/WEBROOT -ignore_readdir_race -name .svn -exec rm -fr {} \; >/dev/null 2>&1
Ora il codice DEV è stata trasformata in vostro codice di produzione sostituzione di tutti gli URL hardcoded e mantenere al sicuro intorno alla directory di upload che non è in SVN. Puoi persino fermarlo e avviare apache anche per te. Spero che la mia soluzione aiuti a risolvere il tuo problema.
ok, capisco wordpress. forse avrei dovuto renderlo più chiaro. questa domanda riguarda specificamente il flusso di lavoro e sto cercando una risposta con specifiche. spero nei casi in cui ho bisogno di scrivere script, la gente può fornire i link – Tony