Как работать с config.php в Magento 2

15

Прежде всего, возможно, это уже ответ на вопрос, но я ничего не нашел по этому вопросу.

Это не проблема, а вопрос о лучшем способе управления файлом config.phpв Magento 2.
На самом деле наша config.phpверсия не является версионной (по умолчанию в .gitignoreфайле M2 ), поэтому ее нет в нашем хранилище. Проблема в том, что когда кто-то устанавливает проект, у него нет этого файла, но у него уже есть база данных, поэтому он не может запустить его bin/magento setup:install ...для создания файла.
Мы знаем, что bin/magento setup:upgradeдобавлять необъявленные модули можно, config.phpно только в том случае, если файл существует и bin/magento module:enableмогут добавлять модули, но мы не хотим запускать его каждый раз при развертывании или установке проекта.

Мой вопрос (ы):
- Есть ли у нас удалить config.phpиз .gitignoreи версии его?
- Должны ли мы добавить его в первый раз в хранилище и впустить его .gitignoreпосле?
- Как лучше всего управлять этим файлом?

Маттео Джеффри
источник
1
Начиная с версии 2.2 предлагается добавить в VCS
weynhamz
Привет @TechliveZheng спасибо за информацию! У вас есть источник / объяснение этого?
Маттео Джеффри

Ответы:

15

Прежде всего, очень хороший вопрос.
Но ... я не согласен с этим:

Проблема в том, что когда кто-то устанавливает проект, у него нет этого файла, но у него уже есть база данных, поэтому он не может запустить bin/magento setup:install...

Я бы сказал, что при установке проекта, если у вас уже есть база данных, вы должны взять config.phpфайл также из того же места, где вы получили базу данных.
Таким образом, вам не нужно бежать, setup:installи у вас есть все, как должно быть.

Я бы не рекомендовал создавать версии этого файла из-за следующего сценария.

  • Вы добавляете новый модуль в dev env.
  • Вы запускаете, setup:upgradeпоэтому модуль появляется не вconfig.php
  • Вы фиксируете свой код и развертываете его в другом окружении.
  • Ваш другой экземпляр env считает, что ваш новый модуль уже установлен, и вы получаете сообщение об ошибке.

Поэтому я думаю, что лучшим решением (IMO) было бы просто не версия и сделать это в зависимости от вашего случая:

  • Вы клонируете проект и базу данных где-то еще, вы должны также клонировать config.phpфайл (наряду с другими подобными pub/media), чтобы у вас не было устаревших данных.
  • Вы клонируете только файлы в репо и начинаете с чистого листа, не копируйте config.php, просто запустите инсталлятор, который создаст его для вас.
Мариус
источник
Я не думал об этом решении, оно не кажется наиболее практичным, но вы правы, на самом деле оно кажется наиболее логичным. Мы будем проверять этот способ. Если вас это не беспокоит, я подожду в конце дня, чтобы принять ваш ответ, может быть, будут даны другие советы. Все равно спасибо !
Маттео Джеффри
Я попытался удалить config.php из репозитория и добавил его в .gitignore. Другой среде не удалось создать новый файл config.php, когда он не существовал (в режиме разработчика).
дчайка
что ты имеешь в виду под "провалился"? Вы пытались установить его в другой среде?
Мариус