Cómo administrar config.php en Magento 2

15

En primer lugar, tal vez sea una pregunta ya respondida, pero no encontré nada sobre ese tema.

No es un problema, sino una pregunta sobre la mejor manera de administrar el archivo config.phpen Magento 2.
En realidad, nuestro config.phpno está versionado (por defecto en el .gitignorearchivo M2 ), por lo que no está en nuestro repositorio. El problema es que cuando alguien instala el proyecto, no tiene este archivo pero ya tiene la base de datos, por lo que no puede ejecutarlo bin/magento setup:install ...para generar el archivo.
Somos conscientes de que bin/magento setup:upgradeagregamos módulos no declarados, config.phppero solo si el archivo existe y bin/magento module:enablepueden agregar módulos, pero nos gustaría evitar iniciarlo cada vez que implementamos o instalamos el proyecto.

Mi pregunta (s):
- ¿Tenemos que eliminar config.phpa partir .gitignorey la versión de ella?
- ¿Tenemos que agregarlo la primera vez en el repositorio y dejarlo .gitignoredespués?
- ¿Cuál es la mejor manera de administrar este archivo?

Matthéo Geoffray
fuente
1
Desde 2.2, se sugiere agregar a VCS
weynhamz
Hola @TechliveZheng gracias por la información! ¿Tienes una fuente / explicación para eso?
Matthéo Geoffray

Respuestas:

15

En primer lugar, muy buena pregunta.
Pero ... no estoy de acuerdo con esto:

El problema es que cuando alguien instala el proyecto, no tiene este archivo pero ya tiene la base de datos, por lo que no puede ejecutar bin/magento setup:install...

Yo diría que cuando instales el proyecto, si ya tienes la base de datos, debes tomar el config.phparchivo también desde el mismo lugar donde obtuviste la base de datos.
De esta manera no tienes que correr setup:instally tienes todo como debe ser.

No recomendaría versionar este archivo debido al siguiente escenario.

  • Agrega un nuevo módulo en el entorno de desarrollo.
  • Ejecutas setup:upgradepara que el módulo no aparezca enconfig.php
  • Confirma su código y lo implementa en otro entorno.
  • Su otra instancia env cree que su nuevo módulo ya está instalado y obtiene un error.

Entonces, supongo que la mejor solución (IMO) sería simplemente no versionarlo y hacer esto dependiendo de su caso:

  • Clonas el proyecto y la base de datos en otro lugar, debes clonar el config.php archivo (junto con otros similares pub/media) para que no tenga datos obsoletos.
  • Clone solo los archivos en el repositorio y comience en una pizarra limpia, no copie config.php, solo ejecute el instalador que lo creará para usted.
Marius
fuente
No había pensado en esta solución, no parece ser la más práctica, pero tienes razón, en realidad es la que parece más lógica. Vamos a probar de esta manera. Si eso no le molesta, esperaré al final del día para aceptar su respuesta, tal vez le den otros consejos. Gracias de todos modos !
Matthéo Geoffray
Intenté eliminar config.php del repositorio y lo agregué a .gitignore. Otro entorno no pudo generar un nuevo archivo config.php cuando no existía (en modo desarrollador).
dchayka
¿Qué quieres decir con "fallido"? ¿Intentaste instalarlo en un entorno diferente?
Marius