Tener múltiples recursos de configuración en la carpeta SQL
-
16-10-2019 - |
Pregunta
¿Es apropiado si se mantiene la estructura de la estructura de la carpeta de recursos de configuración como se muestra a continuación?
MyModule > Helper
sql > mymodule_customer_setup
> mymodule_directory_setup
> mymodule_setup
Si la estructura anterior está bien, ¿cómo debo definir en config.xml? Estoy pensando en definir como a continuación:
<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>
Solución
Así que pasemos a través de lo que realmente sucede aquí.
Instale scripts para todos.
Creé scripts de actualización para los tres recursos y luego en el core_resource
Tabla obtienes la siguiente información.
+--------------------------+---------+--------------+
| 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 |
+--------------------------+---------+--------------+
Actualizaciones para un script
Luego actualizo la ID de versión de la configuración, pero incluyo solo un script de actualización.
+--------------------------+---------+--------------+
| 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 |
+--------------------------+---------+--------------+
Así que tristemente, como se esperaba, todos los recursos se actualizan al mismo tiempo, incluso con el único script :(
Técnicamente, no hay nada de malo en este enfoque, lo he probado y cada script se llama, pero todos los números de versión se actualizan al mismo tiempo. Puede parecer un poco extraño tener scripts "faltantes" en sus directorios, pero siempre puede poner scripts vacíos allí que simplemente inician y terminen la configuración para mantener el pedido.