Jak zarządzać config.php w Magento 2

15

Przede wszystkim jest to może pytanie, na które już udzielono odpowiedzi, ale nie znalazłem nic na ten temat.

To nie jest problem, ale pytanie o najlepszy sposób zarządzania plikiem config.phpw Magento 2.
W rzeczywistości nasz config.phpnie jest wersjonowany (domyślnie w .gitignorepliku M2 ), więc nie ma go w naszym repozytorium. Problem polega na tym, że gdy ktoś instaluje projekt, nie ma tego pliku, ale ma już bazę danych, więc nie może uruchomić się, bin/magento setup:install ...aby wygenerować plik.
Zdajemy sobie sprawę, że bin/magento setup:upgradedodawanie niezadeklarowanych modułów do, config.phpale tylko wtedy, gdy plik istnieje i bin/magento module:enablemożna dodawać moduły, ale chcielibyśmy uniknąć uruchamiania tego za każdym razem, gdy wdrażamy lub instalujemy projekt.

Moje pytanie (s):
- Czy mamy usunąć config.phpz .gitignorea wersja to?
- Czy musimy dodać go po raz pierwszy w repozytorium, a wpuścić .gitignorepóźniej?
- Jaki jest najlepszy sposób zarządzania tym plikiem?

Matthéo Geoffray
źródło
1
Od wersji 2.2 sugeruje się dodanie do VCS
weynhamz
Cześć @TechliveZheng dziękuję za informacje! Czy masz na to źródło / wyjaśnienie?
Matthéo Geoffray

Odpowiedzi:

15

Przede wszystkim bardzo dobre pytanie.
Ale ... Nie zgadzam się z tym:

Problem polega na tym, że gdy ktoś instaluje projekt, nie ma tego pliku, ale ma już bazę danych, więc nie może uruchomić bin/magento setup:install...

Powiedziałbym, że kiedy instalujesz projekt, jeśli masz już bazę danych, powinieneś wziąć config.phpplik również z tego samego miejsca, w którym masz bazę danych.
W ten sposób nie musisz biegać setup:installi masz wszystko tak, jak powinno być.

Nie polecam wersji tego pliku ze względu na następujący scenariusz.

  • Dodajesz nowy moduł w środowisku programistycznym.
  • Uruchomisz, setup:upgradeaby moduł nie pojawił sięconfig.php
  • Zatwierdzasz swój kod i wdrażasz go w innej środowisku.
  • Druga instancja env uważa, że ​​nowy moduł jest już zainstalowany i pojawia się błąd.

Myślę, że najlepszym rozwiązaniem (IMO) byłoby po prostu nie wersji i zrobić to w zależności od przypadku:

  • Klonujesz projekt i bazę danych w innym miejscu, powinieneś także sklonować config.phpplik (wraz z innymi podobnymi pub/media), aby nie mieć nieaktualnych danych.
  • Klonujesz tylko pliki w repozytorium i zaczynasz na czystej tablicy, nie kopiuj config.php, po prostu uruchom instalator, który go utworzy.
Marius
źródło
Nie myślałem o tym rozwiązaniu, nie wydaje się ono najbardziej praktyczne, ale masz rację, w rzeczywistości wydaje się ono najbardziej logiczne. W ten sposób przetestujemy. Jeśli to ci nie przeszkadza, poczekam do końca dnia, aby zaakceptować twoją odpowiedź, być może udzielę ci innych rad. Mimo wszystko dziekuję !
Matthéo Geoffray,
Próbowałem usunąć config.php z repozytorium i dodałem go do .gitignore. W innym środowisku nie udało się wygenerować nowego pliku config.php, gdy nie istniał (w trybie programisty).
dchayka
co rozumiesz przez „nieudany”? próbowałeś zainstalować go na innej env?
Marius