As of Magento 2.2 it's recommended to add
config.php to your source control to facilitate pipeline deployment. I have some questions and issues with this. I'm hoping somebody can share their experience and give me some insights into this recommendation.
A very simplified way to describe the deployment process would be that the Magento build steps are executed in this order:
bin/magento setup:upgrade --keep-generated
By adding certain configuration to
config.php step #1 and #2 can be executed without a connection to a database and thus on a separate server without turning on maintenance mode. You'll always need a connection to the database for step #3.
config.php there are 3 arrays that you'll need before you can run step #1 and #2:
I have an issue with adding
config.php to my source control because of the
modules array. I'll explain why.
modules array Magento adds the modules in a specific order determined by the
<sequence/> tags in the
module.xml files. It's not recommended to change this manually. The state of the module (enabled or disabled) is also stored in
I've run some tests and for the
setup:static-content:deploy it doesn't seem to matter if a module is added to the
modules array. Magento will still compile and deploy the files for that module.
setup:upgrade Magento will regenerate the
modules array and will override the previous order if necessary.
So it seems that
modules is necessary for
setup:static-content:deploy but the actual content of the
modules array doesn't really matter.
When working with feature branches and release branches in your GIT repository
config.php is a file that becomes prone to merge conflicts. And because it's not recommended to manually change this file, you need to let Magento regenerate it which is kind of a hassle when merging pull requests.
How do you manage
Does anyone know a good reason why is
modules necessary before running