如何在Magento 2中管理config.php


15

首先,这可能是一个已经回答的问题,但是我没有找到关于该主题的任何信息。

这不是问题,而是有关config.php在Magento 2中管理文件的最佳方式的问题。
实际上,我们config.php没有版本化(默认情况下,在M2 .gitignore文件中),因此它不在我们的存储库中。问题是,当有人安装项目时,他没有此文件,但他已经有数据库,因此无法运行bin/magento setup:install ...以生成文件。
我们知道,只有在文件存在的情况下,才能向其中bin/magento setup:upgrade添加未声明的模块,config.php并且bin/magento module:enable可以添加模块,但是我们希望避免在每次部署或安装项目时启动该模块。

我的问题(S):
-我们必须删除config.php.gitignore和版本呢?
-我们是否必须在存储库中第一次添加它,然后再添加它.gitignore
-管理此文件的最佳方法是什么?


1
从2.2开始,建议将其添加到VCS中
weynhamz

嗨@TechliveZheng感谢您的信息!您是否有资料来源/说明?
MatthéoGeoffray

Answers:


15

首先,很好的问题。
但是...我不同意这一点:

问题是当有人安装项目时,他没有此文件,但是他已经有数据库,因此无法运行bin/magento setup:install...

我想说的是,在安装项目时,如果您已经拥有数据库,则也应该config.php从获取数据库的位置获取文件。
这样,您不必运行setup:install,便拥有了应有的一切。

由于以下情况,我不建议对此文件进行版本控制。

  • 您在开发环境上添加了一个新模块。
  • 您运行,setup:upgrade以便该模块不在config.php
  • 您提交代码并将其部署到另一个环境中。
  • 您的其他env实例认为您的新模块已安装,并且出现错误。

因此,我认为最好的解决方案(IMO)是不对其进行版本控制,并根据您的情况进行此操作:

  • 您将项目和数据库克隆到其他位置,也应该克隆config.php文件(以及其他类似的文件pub/media),这样就不会有过时的数据。
  • 您仅克隆存储库中的文件,然后从干净的状态开始,不要复制config.php,只需运行将为您创建文件的安装程序即可。

我没有想到这种解决方案,它似乎不是最实用的,但是您说的对,实际上这是最合乎逻辑的解决方案。我们将以这种方式进行测试。如果那不打扰您,我将在一天结束时等待您的回答,也许还会提供其他建议。还是要谢谢你 !
MatthéoGeoffray

我尝试从存储库中删除config.php并将其添加到.gitignore。另一个环境不存在时(在开发人员模式下),无法生成新的config.php文件。
dchayka

“失败”是什么意思?您是否尝试将其安装在其他环境中?
马里斯(Marius)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.