mit dieser Art von DEV und Produktionsumgebung befassen, die ich geschrieben habe ein Perl-Skript, um mir zu helfen, was sonst manuelle Arbeit wäre. Ich habe bestimmte Schritte mit vertrauten Namen versehen, sodass ich mich erinnere, sie in der richtigen Reihenfolge auszuführen. Ich habe nur DEV unter SVN. Ich erstelle jedes Mal eine PRODUCTION-Umgebung mit diesem Skript. Auf diese Weise muss ich mich nicht um die Pflege von zwei Codezweigen kümmern.
Ich verwende SVN, also wähle ich ein neues Checkout-Verzeichnis (wie/tmp/foobar) meines DEV-Codes. Es wird nicht sehr lange dort sein.
Optional Schritt 0: diff Datenbankstrukturen
mysqldump -d -u USER -pPASS mydotcom > production.sql
mysqldump -d -u USER -pPASS mydotcom_dev > development.sql
vim -d production.sql development.sql
Manchmal werden Plugins Tabellen hinzufügen, und dies wird das zeigen. Ansonsten wiederhole ich die in Tabellen vorgenommenen Änderungen (installiere ein Plugin), wenn es sich nicht lohnt, bestimmte Tabellen zu unterscheiden und SQL-Anweisungen zu kopieren.
Schritt 1 sauber: Das Skript löscht alle Dateien im aktuellen Verzeichnis, eine neue Svn Checkout der DEV-Zweigstelle. Dieser neue Checkout wird in den PRODUCTION-Code umgewandelt und in seinen Webroot kopiert.
schritt 2 make: perl führt eine vim suchen und ersetzen der datenbank name in wpconfig.php. Das Suchen und Ersetzen ist genauso einfach in Perl möglich.
system('vim -c "%s/define(\'DB_NAME\', \'mydotcom_dev\'/define(\'DB_NAME\', \'mydotcom\'/g | w | q" wp-config.php');
Entfernen Sie lokale Dateiuploads Verzeichnis (so überschreiben wir nicht die PRODUKTION). wpcontent/uploads glaube ich, dass es sich um eine Standardinstallation handelt.
Ein weiteres Suchen und Ersetzen auf alle Textdateien im Rahmen des Projektes, das meine DEV-URL hat, zum Beispiel
vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php
Schritt 3 installieren. Sichern Sie den wpcontent/uploads mit dircopy(), um sicher zu gehen. Führen Sie eine dircopy() dieses bereinigten Verzeichnisses zum Webroot PRODUCTION aus. Entfernen Sie alle .svn Verzeichnisse innerhalb des Webroot etwa so:
find /PRODUCTION/WEBROOT -ignore_readdir_race -name .svn -exec rm -fr {} \; >/dev/null 2>&1
nun Ihr DEV Code in Ihre Produktion Code verwandelt alle fest einprogrammierten URLs zu ersetzen und zu halten sicher um das Upload-Verzeichnis, das nicht im SVN ist. Sie können es sogar stoppen und Apache für Sie auch beginnen. Ich hoffe, dass meine Lösung hilft, Ihr Problem zu lösen.
ok, ich verstehe WordPress. vielleicht hätte ich das deutlicher machen sollen. Diese Frage bezieht sich speziell auf den Workflow und ich suche nach einer Antwort mit Details. Ich hoffe, in Fällen, in denen ich Skripte schreiben muss, können Menschen Links bieten – Tony