Что запускается первым: скрипт установки-обновления или скрипт обновления данных?

23

Я обновляю модуль до версии, скажем 0.1.3. Скажем, у меня есть эти файлы:

data/mymodule_setup/data-upgrade-0.1.2-0.1.3.php
sql/mymodule_setup/upgrade-0.1.2-0.1.3.php

Будет ли сначала запускаться скрипт обновления sql? Для сценария обновления данных требуется столбец, который будет добавлен в другой сценарий, поэтому, если его еще нет, произойдет сбой.

Vic
источник

Ответы:

21

Заказ

  1. устанавливать
  2. установить скрипт обновления
  3. скрипт данных
  4. скрипт обновления данных

Более подробную информацию можно найти здесь: http://inchoo.net/magento/magento-install-install-upgrade-data-and-data-upgrade-scripts/

или http://www.sitepoint.com/magento-install-upgrade-data-scripts-explained/

Или благодаря @RickBuczynski следующая ссылка: http://vinaikopp.com/2014/11/03/magento-setup-scripts/

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

JELLEJ
источник
Я уже прочитал обе эти статьи, но в них нет ничего о порядке исполнения. Ваш ответ имеет смысл, но можете ли вы подтвердить, что это реальный порядок?
Вик
2
Я также добавил бы этот URL для справки: vinaikopp.com/2014/11/03/magento-setup-scripts Кажется, что это лучшая всесторонняя информация, которую я когда-либо читал по этому вопросу.
Рик Бучински
@Vic смотрите ссылку от Рика.
ЖЕЛЛЕЙ
@RickBuczynski Вау, потрясающая статья!
ЖЕЛЛЕЙ
2
Нет, все хорошо Все 3 ресурса полезны, в зависимости от вашего уровня опыта в этой области. Я получу свои очки в другой раз :-p
Рик Бучински
2

magento следовать этому порядку

  1. устанавливать
  2. установить скрипт обновления
  3. скрипт данных
  4. скрипт обновления данных

интересное начинается, если

в первом скрипте вы вставляете данные (создаете сайт)

и во втором сценарии вы читаете эти данные (категория находит сайт)

  1. Сценарии установки magento выполняются в рамках одной транзакции
  2. Сценарии обновления magento выполняются в другой транзакции
  3. уровень изоляции транзакции mysql по умолчанию REPEATABLE READ

повеселись

Александр Махно
источник