Рабочий процесс для базы данных Magento


Я планирую рабочий процесс Magento для постановки и живой среды.

Я хочу использовать git для файловой системы. Рабочий процесс здесь уже отсортирован.

Но как управлять изменениями базы данных?

В то время как на реальном сервере есть новые данные о клиентах, у меня есть новая конфигурация и данные о продукте в промежуточной системе. Есть ли какой-либо инструмент для разрешения этих конфликтов?

Я исследовал себя https://www.mysql.de/products/workbench/ есть ли способ сделать это с помощью этого инструмента? У кого-нибудь есть опыт в этом?

Author: Fabian Schmengler, 2015-07-20

2 answers

Для конфигурации, управляемой разработчиком, я настоятельно рекомендую сценарии обновления. Создайте модуль Projectname_Config с ресурсом настройки и поместите свои сценарии конфигурации в app/code/local/Projectname/Config/data

Важно использовать сценарии обновления данных , потому что они запускаются после сценариев обновления sql. Поэтому, когда вы обновляете систему с устаревшей базой данных, сначала устанавливаются все расширения (создаются таблицы и т.д.), а затем настраиваются.

Схема именования данных сценарии обновления - это

  • data-install-x.x.x.php для установки версии x.x.x
  • data-upgrade-x.x.x-y.y.y.php для обновления версии x.x.x до версии y.y.y

Пример сценария обновления

/** @var Mage_Catalog_Model_Resource_Setup $installer */
$installer = $this;
$germanStoreId = Mage::app()->getStore('de')->getId();

$installer->setConfigData('general/store_information/name', 'My cool shop');
$installer->setConfigData('general/store_information/name', 'Mein knorke Laden', 'stores', $germanStoreId);

Сложные данные

Теоретически вы можете создавать любые данные в этих сценариях, но я обычно использую их только для простых моделей, таких как страницы и блоки CMS, иногда для категорий.

Я не думаю, что продукты следует создавать в промежуточной системе, а затем перемещать. Если вы должны это сделать, я бы попробовал ImportExport экспортировать новые продукты на этапе подготовки в CSV и импортировать их в производство.

Но обычный подход заключается в том, чтобы в любом случае управлять своими продуктами за пределами Magento, а затем вы можете импортировать их в каждый экземпляр.

Для других сложных продуктов, таких как правила корзины покупок, они настолько сложны и подвержены ошибкам, что я предпочитаю тратить время на их создание вручную в каждой системе.

Вы найдете несколько инструментов, которые обещают перенос любых данных из одного хранилища в другое, но я не думаю, что существует серебряная пуля в решении этой проблемы.

 1
Author: Fabian Schmengler, 2020-06-15 08:30:17

Существует инструмент под названием https://mageflow.com /. Они утверждают, что могут отслеживать почти все объекты Magento, но я лично еще не пробовал.

Другой способ сделать это - иметь модуль со сценариями установки. Этот модуль может находиться в вашем репозитории git, и вы можете увеличивать номер версии и добавлять новый сценарий установки каждый раз, когда хотите внести изменения в базу данных в действующую систему. Это может быть серьезная ПИТА; но это лучший "ручной" метод, который я знаю из.

 0
Author: simonthesorcerer, 2015-07-20 17:25:30