Як керувати 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.