Das Problem: der Arbeit an einem Live-Web-Site ist eine schlechte Idee
Wer schon einmal auf eine ausreichend komplexe Web-Site gearbeitet weiß, dass es eine schlechte Idee, direkt auf dem Live-Server-Hosting der Website für ein paar wichtige Gründe:
Wir entwickeln auf dieser Website und testen Sie alle nicht-triviale Änderungen in einer lokalen TurnKey Drupal-Instanz läuft innerhalb einer virtuellen Maschine. Das heißt, wir können experimentieren und Schraube Dinge ohne Folgen. Ich finde das Entfernen dieser Quelle von Stress macht dich viel glücklicher und produktiver als Web-Entwickler.
Arbeiten wie diese wirft einige praktische Fragen aber:
Als wir anfingen, haben wir nicht geben, so viel Gedanken zu diesen Fragen und würde nur rsync eine Reihe von zufälligen Verzeichnissen herum in Ad-hoc-Mode. Das zwangsläufig zu ein paar böse Fehler, die uns davon überzeugt, führte dies ist etwas, was wir brauchten, um zu durchdenken.
Hier ist, was wir kamen mit:
Ein einziger flüchtiger Verzeichnis war viel einfacher, den Überblick über geistig zu halten, als eine Ad-hoc-Erhebung der Verzeichnisse.
Wir haben dann schrieb ein einfaches Skript (download), die zwei Operationen unterstützt:
Diese Technik sollte in der Regel für viele ähnliche Entwicklung Szenarien, nicht nur Drupal Website-Entwicklung zu arbeiten.
Beachten Sie, dass das Ziehen kurz vor schieben wir nicht unbedingt beseitigen das Risiko einer versehentlichen Überschreiben Änderungen von einem anderen Entwickler gemacht, wenn sie an genau der gleichen Zeit drängen passieren. Um dies zu verhindern Rand Fall müssten Sie irgendeine Art von Verriegelungsmechanismus zu implementieren. Wir haben Chrome nicht zu stören.
Mit Drupal ein extra Vorbehalt, dass ein großer Teil der Website lebt in der Datenbank ist, so Dateisystem-Ebene Synchronisation löst nur einen Teil des Problems.
Da der Staat von einer Live-dynamische Web-Site können, während Sie sich auf die Entwicklung etwa arbeiten (zB neue Benutzer, neue Beiträge im Forum) haben wir nur ziehen Sie die Datenbank aus der Live-Web-Site-Server, um die Entwicklung Instanz. Niemals in die andere Richtung.
Wir haben nur eine Ausnahme gemacht, wenn wir ein Upgrade wurden die Webseite, von Drupal 5 auf Drupal 6. Das erforderte eine massive Datenbank aktualisieren wir wohler gefühlt Vorbereitung auf die Entwicklung Instanz und Herausschieben der neuen Drupal 6 basierende Live-Website. In der Zwischenzeit setzen wir einen Hinweis in der Vorlage der alten Drupal 5 Website Warnung Benutzer, dass jede Änderung auf der Website verloren gehen würden. 15 Minuten später wurde das neue Drupal 6 Basis-Website auf.