it-swarm-es.tech

Estructurar carpeta de archivos sql en mi componente

¿Qué carpeta debo poner mis archivos sql en mi componente para que joomla los ejecute automáticamente? Si en la primera versión creé una tabla y en la versión posterior quiero cambiar, ¿cómo debo organizar esos archivos para que Joomla sepa qué archivos debe ejecutar? ¿Cómo gestiona Joomla estos archivos?

6
csbenjamin

Como Milton ya escribió, usted especifica dónde están esos archivos SQL en el archivo de manifiesto de instalación. Hay tres ubicaciones diferentes para instalar, desinstalar y actualizar.

<install>
    <sql>
        <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
    </sql>
</install>
<uninstall>
    <sql>
        <file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
    </sql>
</uninstall>
<update>
    <schemas>
        <schemapath type="mysql">sql/updates/mysql</schemapath>
    </schemas>
</update>

Como puede ver, el update uno es un poco especial ya que no especifica un solo archivo sino una carpeta. En esta carpeta debe haber archivos siguiendo las versiones de sus componentes. En una actualización, Joomla verificará esa carpeta y aplicará los comandos en los archivos en el orden correcto. Almacena el último archivo aplicado en la base de datos para que sepa en la próxima actualización cuál fue el último aplicado. Por lo tanto, la carpeta debe contener archivos con este nombre:

  • 1.0.0.sql
  • 1.0.1.sql
  • 1.1.0.sql
  • ...
9
Bakual

La convención generalmente es el directorio de administración, pero más allá de eso no debería importar siempre que haga referencia a la ubicación de los archivos correctamente dentro de su archivo xml principal.

me gusta:

<install>
    <sql>
        <file driver="mysql" charset="utf8">sql/tables/install.sql</file>
    </sql>
</install>

o:

<install>
    <sql>
        <file driver="mysql" charset="utf8">sql/install.sql</file>
    </sql>
</install>
4
Milton Bryant