Як керувати 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 вважає, що ваш новий модуль вже встановлений, і ви отримуєте помилку.

Тож я думаю, що найкращим рішенням (ІМО) було б просто не його версію та робити це залежно від вашого випадку:

  • Ви клонуєте проект і базу даних десь в іншому місці, ви також повинні клонувати config.phpфайл (разом з іншими, як pub/media), щоб у вас не було застарілих даних.
  • Ви клонуєте лише файли в репо і починаєте на чистому аркуші, не копіюйте config.php, просто запустіть інсталятор, який створить це для вас.

Я не замислювався над цим рішенням, воно виглядає не найпрактичніше, але ви праві, насправді це саме те, що здається найбільш логічним. Ми перевіримо таким чином. Якщо це вас не турбує, я зачекаю кінця дня, щоб прийняти вашу відповідь, можливо, можуть бути надані інші поради. В будь-якому випадку, дякую Вам !
Маттео Джеффрей

Я спробував видалити config.php з репо і додав його до .gitignore. Інше середовище не вдалося створити новий файл config.php, коли його не існувало (в режимі розробника).
дчайка

що ви маєте на увазі під "провалом"? ви намагалися встановити його на іншому оточенні?
Маріус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.