Wir haben einige benutzerdefinierte Module, die für mehrere Sites verwendet werden. Diese können nicht als beigestellte Module veröffentlicht werden, zum Beispiel weil sie kundenspezifisch sind, Annahmen treffen, die für beigestellte Module nicht funktionieren und so weiter.
Ich kenne die folgenden Möglichkeiten, um damit umzugehen:
Kopieren Sie sie und fügen Sie sie ein. Dies macht es offensichtlich schwierig, das Modul bei allen Installationen auf dem neuesten Stand zu halten.
Haben Sie eine einzelne Installation an mehreren Standorten, aber dies ist nicht immer möglich.
Verwenden Sie Git-Submodule, aber sie können unangenehm sein, es ist leicht zu vergessen, sie zu aktualisieren und werden nicht immer unterstützt (z. B. Pantheon)
Erstellen Sie Skripte, um sie aus einem gemeinsamen Git-Repository auszuchecken. Dafür muss AFAIK Drush Make für die gesamte Site verwenden, und wir verwenden es derzeit nicht.
http://drupal.org/project/fserver . Ich habe das noch nicht ausprobiert, weiß jemand, ob es stabil genug ist? Die Projektbeschreibung klingt nicht sehr vielversprechend und es gibt keine 7.x-Version.
Sonst noch was / besser? Was bevorzugen Sie und warum?
quelle
Antworten:
Der Drush- Make-Ansatz ist, wie Sie bereits erwähnt haben, die Version, die mein Team verwendet.
Auch wenn Sie derzeit kein drush make für Ihre Websites verwenden, sollte es für Sie relativ einfach sein, zu diesem Workflow zu wechseln, wenn Sie möchten, da drush auch die Funktion drush make-generate bietet , mit der die make-Datei von einer vorhandenen Website generiert wird. Es lohnt sich also nicht, sich nur für neue Websites zu interessieren. :)
quelle
Wenn sich alle Standorte auf demselben Server befinden, können Sie
symlink
Module von einem zentralen Ort laden oderrsync
wenn Sie mit mehreren Servern arbeiten.Dies wird das Problem der Verteilung von Dateien lösen, aber Sie müssen noch ein Upgrade auslösen. Es kann
drush
mit einem einfachen Skript automatisiert werden , das das Upgrade für jeden Standort einzeln aufruft.quelle
Scheint so, als würde man fast auf alle Lösungen schauen. Als ich es las, zuerst , was kommen in meinem Kopf seine beiden anderen Lösungen wie
rsync
odersymlink
aber auch hier ist es nicht angenehm zu halten.Dann ist Git Deploy eine gute Kombination mit Git-Submodulen.
Ich habe diese Idee noch nicht ausprobiert, aber sie könnte funktionieren oder zumindest einen Hinweis darauf geben, wie man sie hackt, um ein eigenes System zu erstellen.
quelle
Ich verwende ein separates Git-Repository für alle hinzugefügten / benutzerdefinierten Module, wobei sich jedes hinzugefügte oder benutzerdefinierte Modul in einem separaten Zweig befindet (nicht in einem Submodul).
So funktioniert der Git-Merge hier:
Meister
master -> release
und ein Bash / Drush-Skript zum Aktualisieren der Zweige
quelle
Ich verwende stattdessen SVN Git, um unsere kundenspezifisch entwickelten Module zu speichern. Nachdem ich die Änderung von localhost übernommen habe, führe ich einfach das Bash-Skript aus, mit dem der Befehl "svn update" an vordefinierten Serverstandorten ausgeführt wird. Immer wenn ich ein Modul an einem neuen Speicherort bereitstelle, aktualisiere ich das Bash-Skript. Es ist wirklich ein einfaches Setup und funktioniert problemlos.
quelle