Наличие нескольких ресурсов настройки в папке SQL
-
16-10-2019 - |
Вопрос
Уместно ли это, если поддерживать структуру структуры папок ресурсов настройки, как показано ниже?
MyModule > Helper
sql > mymodule_customer_setup
> mymodule_directory_setup
> mymodule_setup
Если выше структура в порядке, то как я должен определить в config.xml? Я подумываю определить, как ниже:
<resources>
<mymodule_customer_setup>
<setup>
<module>Package_MyModule</module>
</setup>
</mymodule_customer_setup>
<mymodule_directory_setup>
<setup>
<module>Package_MyModule</module>
</setup>
</mymodule_directory_setup>
<mymodule_setup>
<setup>
<module>Package_MyModule</module>
</setup>
</mymodule_setup>
</resources>
Решение
Итак, давайте пройдемся через то, что на самом деле происходит здесь.
Установите сценарии для всех.
Я создал сценарии обновления для всех трех ресурсов, а затем в core_resource
Таблица вы получаете следующую информацию.
+--------------------------+---------+--------------+
| code | version | data_version |
+--------------------------+---------+--------------+
| mymodule_customer_setup | 0.7.0 | 0.7.0 |
| mymodule_directory_setup | 0.7.0 | 0.7.0 |
| mymodule_setup | 0.7.0 | 0.7.0 |
+--------------------------+---------+--------------+
Обновления для одного сценария
Затем я обновляю идентификатор версии конфигурации, но включаю только один скрипт обновления.
+--------------------------+---------+--------------+
| code | version | data_version |
+--------------------------+---------+--------------+
| mymodule_customer_setup | 0.7.1 | 0.7.1 |
| mymodule_directory_setup | 0.7.1 | 0.7.1 |
| mymodule_setup | 0.7.1 | 0.7.1 |
+--------------------------+---------+--------------+
К сожалению, как и ожидалось, все ресурсы обновляются одновременно даже с одним сценарием :(
Технически нет ничего плохого в этом подходе, я протестировал его, и каждый скрипт действительно вызывается, но все номера версий обновляются одновременно. Это может выглядеть немного странно, имея «отсутствующие» сценарии в ваших каталогах, но вы всегда можете положить там пустые сценарии, которые просто запускают и заканчивают настройку, чтобы сохранить заказ.