2016-05-11 9 views
1

Ich habe folgendes Setup: Eine lokale Debian-Maschine mit einem LAMP-Setup. Jetzt muss ich mit einem PHP-Projekt arbeiten, das über Git (oder GitLab im Speziellen) verwaltet wird.Der beste Weg, um die Umgebung Setup/Update von einem Git Repo zu automatisieren?

Wenn ich (oder andere Entwickler) das Projekt beizutreten, muss ich einige tun meint:

  • Erstellen einer MySQL-Datenbank
  • Import der MySQL-Schema
  • erstellen vHost für Apache
  • . ..

Wenn ich das Projekt nach einer gewissen Zeit der Inaktivität aktualisiert werden, muss ich mehrere aktualisieren meint:

  • Änderungen in MySQL Schema
  • Einfügen/Aktualisieren/Löschen von Datensätzen
  • ...

und dies muss von jedem einzelnen Entwickler zu tun. Jetzt suche ich eine Lösung, um diesen Workflow zu automatisieren. Ich habe einmal über Apache Ant nachgedacht und ich denke, dass das Tool eine Lösung schaffen kann.

In der Ant-Datei kann ich Arbeitsabläufe für die Datenbank, den vhost und andere Dinge erstellen. Zusätzlich benötige ich ein Tool zur Verwaltung von MySQL Migrationen (Phinx vielleicht?). Dieses Tool kann auch von Ant ausgelöst werden, so dass ich die MySQL-Updates in/nach einem Checkout-Prozess automatisieren kann.

Aber diese komplette Idee ist von mir selbst erstellt. Ich habe keine Erfahrung mit solchen Prozessen. Und es ist sehr schwierig, nach diesem Thema zu suchen, wenn Sie keine Erfahrung haben, weil ich so viele Themen und Seiten über kontinuierliche Integration, kontinuierliche Lieferung, verschiedene Werkzeuge gefunden habe, so dass ich nicht trennen kann, was für meine Bedürfnisse relevant ist.

Leider brauche ich Hilfe und Rat, um den richtigen/besten Weg für meinen Fall zu finden.

PS: Entschuldigung für Grammatikfehler. Englisch ist nicht meine Muttersprache.

Antwort

0

Eine der Möglichkeiten, lokale Entwicklungsumgebungen zu verwalten, gewinnt in letzter Zeit an Popularität, indem eine Art von Virtualisierung über VMs oder Container verwendet wird. Vagrant und Docker sind zwei der beliebtesten Lösungen. In der Regel werden sie von Provisioner-Tools wie Ansible oder Chef begleitet. Die Idee ist, dass Sie ein Bild (oder mehrere Bilder) Ihrer Entwicklungsumgebung in einem tatsächlichen Zustand halten müssen. Newcomer müssen das gleiche Tool installieren und die Umgebung neu starten. Digtheinternet bis findmore.

Wenn Sie Ihre DB auf diese Weise containerisieren und versionieren, werden Sie (hoffentlich) überhaupt keine Migrationstools benötigen: Das Tool Ihrer Wahl wird Versionen von Entwurf behandeln. Sie können jedoch weiterhin Phinx oder eine andere Lösung wie Liquibase oder FlyWay verwenden. Die Migrationen können in diesem Fall mit Git neben Ihrer Hauptcode-Basis versioniert werden.

Verwandte Themen