Вам не подобається бачити ваш магазин зламаним або в режимі обслуговування під час запуску deployment команд в Magento 2? Справді? Чудово. Протягом наступних 5 хвилин ми допоможемо вам з цим болем. У Magefan ми створили Linux bash скрипт, який дозволяє запускати команди bin/magento setup без ламання магазину, тривалого простою та втрати продажів.

Увага! Цей cкрипт застарілий, ми настійно рекомендуємо використовувати Magento 2 Zero Downtime Deployment Extension.

Щоб використовувати Magento 2 zero downtime deployment, виконайте наведені нижче дії:

1. Встановіть скрипт Magento 2 zero-downtime deployment

Запустіть ці CLI команди у кореневому каталозі Magento:

wget -O deploy.zip https://github.com/magefan/magento2-zero-downtime-deploy/archive/master.zip
unzip deploy.zip
rm -f deploy.zip
mv magento2-zero-downtime-deploy-master/ deploy
cp deploy/app/static-content-deploy.sh.sample deploy/app/static-content-deploy.sh
cp app/etc/env.php deploy/app/env.php
echo $'\n'deploy/app/env.php >> .gitignore chmod +x deploy/run

2. Налаштуйте скрипт zero-downtime 

Якщо ви використовуєте конкретні команди розгортання статичного контенту, відредагуйте наступний файл

deploy/app/static-content-deploy.sh 

За замовчуванням він має команди для розгортання всіх тем Magento 2 у мові en_US.

Якщо ви використовуєте Redis або інше сховище без папок, для сесії чи кеш-пам’яті, відредагуйте файл

deploy/app/env.php

Переконайтеся, що кеш і сесія зберігаються в папці.

3. Використайте M2 zero-downtime deploy script

Щоб розгорнути статичний контент Magento (bin / magento setup: static-content: deploy) без простоїв, використовуйте CLI команду:

deploy/run -s

Щоб згенерувати налаштування введення коду та залежностей - (dependency injection configuration) (bin / magento setup: di: compile) без простою, використовуйте CLI команду:

deploy/run -d

Ви також можете запустити скрипт з кількома параметрами, напр.:

deploy/run -d -s

Щоб оновити дані та схему бази даних модулів Magento 2 (bin / magento setup: upgrade), використовуйте CLI команду:

deploy/run

Якщо ви встановлюєте нові розширення, виконайте цю команду:

deploy/run -m Vendor_Module1 Vendor_Module2

Зауважте, що ці команди також запускатимуть DI та згенерують статичний контент, і це єдина команда, яка переводить магазин Magento 2 у режим обслуговування на кілька секунд під час виконання setup:upgrade.

 

Чи справді це працює?

- Так. Ми вже використовуємо його на сайті magefan.com та в декількох магазинах клієнтів для впровадження нових змін дизайну та бізнес-логіки. Ми раді поділитися цим з вами та отримати відгук.