it-swarm.com.de

Strukturordner von SQL-Dateien in meiner Komponente

In welchem ​​Ordner soll ich meine SQL-Dateien in meine Komponente legen, damit Joomla sie automatisch ausführt? Wenn ich in der ersten Version eine Tabelle erstellt habe und in einer späteren Version ändern möchte, wie soll ich diese Dateien so organisieren, dass Joomla weiß, welche Dateien ausgeführt werden müssen? Wie verwaltet Joomla diese Dateien?

6
csbenjamin

Wie Milton bereits schrieb, geben Sie an, wo sich diese SQL-Dateien in der Installationsmanifestdatei befinden. Es gibt drei verschiedene Speicherorte für die Installation, Deinstallation und Aktualisierung.

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

Wie Sie sehen, ist das update etwas Besonderes, da es keine einzelne Datei, sondern einen Ordner angibt. In diesem Ordner sollten sich Dateien befinden, die Ihren Komponentenversionen entsprechen. Bei einem Update überprüft Joomla diesen Ordner und wendet die Befehle in den Dateien in der richtigen Reihenfolge an. Es speichert die zuletzt angewendete Datei in der Datenbank, sodass es beim nächsten Update weiß, welche Datei zuletzt angewendet wurde. Der Ordner sollte also folgende Dateien enthalten:

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

Die Konvention ist normalerweise das Admin-Verzeichnis, aber darüber hinaus sollte es keine Rolle spielen, solange Sie den Speicherort der Dateien in Ihrer Haupt-XML-Datei korrekt referenzieren.

mögen:

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

oder:

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