Comment gérer config.php dans Magento 2

15

Tout d'abord, c'est peut-être une question déjà répondue, mais je n'ai rien trouvé à ce sujet.

Ce n'est pas un problème mais une question sur la meilleure façon de gérer le fichier config.phpdans Magento 2.
En fait, notre config.phpn'est pas versionné (par défaut dans le .gitignorefichier M2 ) donc il n'est pas dans notre référentiel. Le problème est que lorsque quelqu'un installe le projet, il n'a pas ce fichier mais il a déjà la base de données, il ne peut donc pas s'exécuter bin/magento setup:install ...pour générer le fichier.
Nous sommes conscients que l' bin/magento setup:upgradeajout de modules non déclarés config.phpmais uniquement si le fichier existe et bin/magento module:enablepeut ajouter des modules, mais nous aimerions éviter de le lancer à chaque fois que nous déployons ou installons le projet.

Ma question (s):
- Devons - nous retirer config.phpde .gitignoreet la version il?
- Faut-il l'ajouter la première fois dans le référentiel et le laisser ensuite .gitignore?
- Quelle est la meilleure façon de gérer ce fichier?

Matthéo Geoffray
la source
1
Depuis 2.2, il est suggéré d'ajouter dans VCS
weynhamz
Salut @TechliveZheng merci pour l'info! Avez-vous une source / explication pour cela?
Matthéo Geoffray du

Réponses:

15

Tout d'abord, très bonne question.
Mais ... je ne suis pas d'accord avec ça:

Le problème est que lorsque quelqu'un installe le projet, il n'a pas ce fichier mais il a déjà la base de données donc il ne peut pas s'exécuter bin/magento setup:install...

Je dirais que lorsque vous installez le projet, si vous avez déjà la base de données, vous devez également prendre le config.phpfichier au même endroit où vous avez obtenu la base de données.
De cette façon, vous n'avez pas à courir setup:installet vous avez tout comme il se doit.

Je ne recommanderais pas de versionner ce fichier en raison du scénario suivant.

  • Vous ajoutez un nouveau module sur le dev env.
  • Vous exécutez de setup:upgradesorte que le module n'apparaisse pas dansconfig.php
  • Vous validez votre code et le déployez sur un autre env.
  • Votre autre instance env pense que votre nouveau module est déjà installé et vous obtenez une erreur.

Je suppose donc que la meilleure solution (IMO) serait de ne pas le versionner et de le faire en fonction de votre cas:

  • Vous clonez le projet et la base de données ailleurs, vous devez cloner le config.php fichier (avec d'autres comme pub/media) pour ne pas avoir de données obsolètes.
  • Vous clonez uniquement les fichiers du référentiel et commencez sur une table blanche, ne copiez pas config.php, exécutez simplement le programme d'installation qui le créera pour vous.
Marius
la source
Je n'avais pas pensé à cette solution, elle ne semble pas être la plus pratique, mais vous avez raison en fait c'est celle qui semble la plus logique. Nous allons tester de cette façon. Si cela ne vous dérange pas, j'attendrai la fin de la journée pour accepter votre réponse, peut-être que d'autres conseils pourraient être donnés. Merci quand même !
Matthéo Geoffray
J'ai essayé de supprimer config.php du dépôt et de l'ajouter à .gitignore. Un autre environnement n'a pas réussi à générer un nouveau fichier config.php alors qu'il n'existait pas (en mode développeur).
dchayka
qu'entendez-vous par «échoué»? avez-vous essayé de l'installer sur un autre environnement?
Marius