So verwalten Sie config.php in Magento 2

15

Zuallererst ist es vielleicht eine bereits beantwortete Frage, aber ich habe nichts zu diesem Thema gefunden.

Es handelt sich nicht um ein Problem, sondern um die Frage, wie die Datei config.phpin Magento 2 am besten verwaltet werden kann .
Tatsächlich ist unsere config.phpVersion nicht (standardmäßig in der M2- .gitignoreDatei) und befindet sich daher nicht in unserem Repository. Das Problem ist, dass jemand, der das Projekt installiert, diese Datei nicht hat, aber bereits über die Datenbank verfügt, so dass er bin/magento setup:install ...die Datei nicht generieren kann.
Wir sind uns bewusst, dass das bin/magento setup:upgradeHinzufügen von nicht deklarierten Modulen zu, config.phpaber nur, wenn die Datei vorhanden ist, und das bin/magento module:enableHinzufügen von Modulen möglich ist. Wir möchten jedoch vermeiden, dies jedes Mal zu starten, wenn wir das Projekt bereitstellen oder installieren.

Meine Frage (n):
- müssen wir entfernen config.phpaus .gitignoreund es Version?
- Müssen wir es das erste Mal in das Repository einfügen und im Nachhinein wieder freigeben .gitignore?
- Wie kann ich diese Datei am besten verwalten?

Matthéo Geoffray
quelle
1
Seit 2.2 wird empfohlen, VCS
weynhamz am
Hallo @ TechliveZheng danke für die Info! Hast du eine Quelle / Erklärung dafür?
Matthéo Geoffray

Antworten:

15

Zuallererst eine sehr gute Frage.
Aber ... dem stimme ich nicht zu:

Das Problem ist, dass jemand, der das Projekt installiert, diese Datei nicht hat, aber bereits über die Datenbank verfügt, sodass er sie nicht ausführen kann bin/magento setup:install...

Ich würde sagen, wenn Sie das Projekt installieren, sollten Sie, wenn Sie bereits über die Datenbank verfügen, die config.phpDatei auch von dem Ort nehmen, an dem Sie die Datenbank erhalten haben.
Auf diese Weise müssen Sie nicht rennen setup:installund haben alles so, wie es sein sollte.

Aufgrund des folgenden Szenarios würde ich die Versionierung dieser Datei nicht empfehlen.

  • Sie fügen ein neues Modul in der Entwicklungsumgebung hinzu.
  • Sie führen aus, setup:upgradedamit das Modul nicht in angezeigt wirdconfig.php
  • Sie schreiben Ihren Code fest und stellen ihn auf einer anderen Umgebung bereit.
  • Ihre andere env-Instanz geht davon aus, dass Ihr neues Modul bereits installiert ist und Sie eine Fehlermeldung erhalten.

Ich denke also, die beste Lösung (IMO) wäre, es einfach nicht zu versionieren und dies in Abhängigkeit von Ihrem Fall zu tun:

  • Wenn Sie das Projekt und die Datenbank an einem anderen Ort klonen, sollten Sie auch die config.phpDatei klonen (zusammen mit anderen wie pub/media), damit Sie keine veralteten Daten haben.
  • Du klonst nur die Dateien im Repo und startest auf einer sauberen Platte. Kopiere sie nicht. Führe config.phpeinfach das Installationsprogramm aus, das das für dich erstellt.
Marius
quelle
Ich hatte nicht an diese Lösung gedacht, sie scheint nicht die praktischste zu sein, aber Sie haben Recht, tatsächlich scheint sie die logischste zu sein. Wir werden diesen Weg testen. Wenn Sie das nicht stört, warte ich bis zum Ende des Tages, um Ihre Antwort zu akzeptieren. Möglicherweise werden andere Ratschläge gegeben. Trotzdem danke !
Matthéo Geoffray
Ich habe versucht, config.php aus dem Repo zu entfernen und es zu .gitignore hinzuzufügen. In einer anderen Umgebung konnte keine neue Datei config.php generiert werden, wenn diese nicht vorhanden war (im Entwicklermodus).
dchayka
was meinst du mit "gescheitert"? Haben Sie versucht, es auf einer anderen Umgebung zu installieren?
Marius