Entwickeln von Websites unter Verwendung von Aegir und Drush make

7

Ich habe diesen Artikel von mig5.net über 'Drupal-Bereitstellungen und Workflows mit Versionskontrolle, drush_make und Aegir' gelesen. Ich bin beeindruckt von der Effizienz des hier beschriebenen Workflows und möchte dies unbedingt umsetzen. Ich lese es immer wieder, aber eines wird mir nicht klar.

Wie können Sie beim Entwickeln von Websites Ihre Änderungen in den nächsten Build übernehmen? Wenn Sie herausfinden, dass Sie ein zusätzliches Modul benötigen, wie können Sie dies im nächsten Build erhalten, wenn das (zum Beispiel Contrib-) Modul nicht in Git gesteuert wird? Müssen Sie Ihre .make-Datei jedes Mal bearbeiten, wenn Sie ein Modul, eine Bibliothek usw. hinzufügen möchten?

Danke im Voraus.


quelle

Antworten:

2

Ja. Die kurze Antwort lautet: Sie aktualisieren Ihre Drush-Make-Datei so, dass sie auf die neue Version des Moduls verweist, das in Ihre neue Plattform (Build) aufgenommen werden soll.

In Ihre Drush-Make-Datei würden Sie die Version jedes Moduls aufnehmen, das Sie in Ihren Plattform-Build aufnehmen. So würden beispielsweise Ansichten aussehen.

projects[views][subdir] = "contrib"
projects[views][version] = "3.4"

Wenn Sie jetzt auf die neue Version des Views-Moduls aktualisieren möchten, aktualisieren Sie Ihre make-Datei auf etwa so.

projects[views][subdir] = "contrib"
projects[views][version] = "3.5"

Erstellen Sie dann eine neue Plattform in Aegir mit dieser aktualisierten Drush-Make-Datei. Dann würden Sie die Site auf die neue Plattform migrieren und Aegir wird das Update für Sie durchführen.

Es ist ein ziemlich geschickter Workflow. Ich behalte alle meine Drush-Make-Dateien in einem Repo namens Builds, damit ich jeden Build eines Projekts aufzeichnen kann. Ich hoffe, das hilft.

Kepford
quelle
Warum heißt der Build im Artikel 'drupal-6.14_build_2009102601'? Wenn ich recht habe, ist es die Anwendung von Mig5. Wäre es nicht logischer, es 'mig5_build_2009102601' zu nennen? Dieser Workflow beinhaltet auch, dass Sie eine große Liste von Plattformen erhalten, wenn Sie mehr Websites entwickeln, nicht wahr?
1
Sicher, aber auch Capistrano-basierte Builds. Ein intelligenter Ingenieur würde die automatische Bereinigung alter Plattformen implementieren, auf denen sich keine Websites mehr befinden (Sie können das Löschen von Plattformen in Aegir automatisieren). Und ja, Sie können den Plattformnamen beliebig nennen. Heutzutage bin ich noch brutaler mit meiner Benennung und verwende einfach die Seriennummer, z. B. '2009102601', weil ich finde, dass es nicht so wichtig ist, auf welcher Plattform sich die Anwendung befindet (sie ändert sich ständig, also wen interessiert das)
mig5
Okay, aber wenn Sie eine Änderung rückgängig machen müssen, haben Sie keine Ahnung, auf welche Plattform Sie migrieren möchten, da Sie keinen beschreibenden Alias ​​angehängt haben (das Datum, aber keinen Site-Namen) ...
Und kann ich Plattformen mit einem Modul wie Auto Expire automatisch löschen? Ein Problem ist die Tatsache, dass dieses Modul auch die neueste veröffentlichte Plattform löschen würde (wenn sich die Site eine Weile nicht geändert hat).
1

Bob hat mich geschlagen :) aber als Antwort auf diese und Ihre E-Mail, die Sie mir geschickt haben, ist dies in der Tat das richtige Verfahren. Behandeln Sie Ihr Drush-Makefile als "Blaupause" Ihrer Anwendung.

Arbeiten Sie in der Entwicklung manuell weg / klonen Sie Ihre Live-Site und "drush up" oder "drush dl" ein Modul und testen Sie, ob alles wie erwartet funktioniert.

Falten Sie dann das neue Modul / die aktualisierte Version in Ihr Makefile, erstellen Sie jedes Mal eine neue Plattform, wenn das Makefile aktualisiert wird, und verwenden Sie die Aufgabe "Migrieren", um Ihre Anwendung auf die Zielplattform zu "aktualisieren".

Wenn während des Upgrades etwas schief geht (z. B. während der Drush-Aktualisierung, die während einer Migration zum Anwenden von Schemaaktualisierungen in Ihrer Datenbank auftritt), wird Aegir in den meisten Fällen automatisch auf die vorherige Plattform zurückgesetzt, was den Reiz eines solchen Systems darstellt .

mig5
quelle