it-swarm-eu.dev

Struttura cartella di file sql nel mio componente

Quale cartella devo inserire i miei file sql nel mio componente per joomla eseguirli automaticamente? Se nella prima versione ho creato una tabella e nella versione successiva voglio cambiare, come devo organizzare quei file in modo tale che joomla sappia quali file deve eseguire? In che modo joomla gestisce questi file?

6
csbenjamin

Come Milton ha già scritto, si specifica dove si trovano quei file SQL nel file manifest di installazione. Esistono tre posizioni diverse per l'installazione, la disinstallazione e l'aggiornamento.

<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>

Come vedi, update è un po 'speciale in quanto non specifica un singolo file ma una cartella. In questa cartella dovrebbero essere presenti file che seguono le versioni dei componenti. Su un aggiornamento Joomla controllerà quella cartella e applicherà i comandi nei file nell'ordine corretto. Memorizza l'ultimo file applicato nel database in modo da sapere al prossimo aggiornamento quale è stato l'ultimo applicato. Quindi la cartella dovrebbe contenere file chiamati in questo modo:

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

La convenzione di solito è la directory di amministrazione, ma oltre a ciò non dovrebbe importare fino a quando si fa riferimento alla posizione dei file correttamente all'interno del file XML principale.

piace:

<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