it-swarm.com.de

Alte Update-SQL-Adressen werden beim Update ausgeführt

Ich erstelle eine benutzerdefinierte Komponente und bei der Erstinstallation unter Joomla 3.3.6 wird sie ordnungsgemäß installiert. Wenn ich jedoch erneut installiere, anstatt das Update SQL nur ab der aktuellen Version + auszuführen, führt es anscheinend ALLE Update SQL-Dateien von Anfang an aus.

In der Tabelle jos_extensions Zeigt manifest_cache Meiner Komponente die Version unter "version":"3.3.2" - dies sollte bedeutet, dass nur SQL-Aktualisierungsdateien 3.3.2+ verwendet werden sollten Beim Upgrade ausführen. Jedes Update wird jedoch ausgeführt.

Kann sich jemand einen Grund vorstellen, warum das passiert? Vielen Dank für alle Ideen.

2
user101289

Da ich keinen Ruf habe;) ein Kommentar:

  • Sie müssen in der Tabelle xyz_schemas nach der neuesten Version des SQL-Updates suchen. Mit Nebenstellen-ID-Nr.
  • Verwenden Sie method = "upgrade" im XML-Manifest?
  • Ein häufigeres Problem ist, dass die SQL-Updates nicht ausgeführt werden, wenn bei der Installation eine anfängliche (leere) SQL-Update-Version fehlte.
1
schnuti

Joomla verfolgt die Schemaversionen für sich und die Komponenten in der Tabelle #__schemas. Es listet den extension_id Und mit dem version_id Auf und verwendet diesen, um zu bestimmen, welche Updates ausgeführt werden sollen. Zum Beispiel sehen Sie Einträge wie diese:

700    3.3.6-2014-09-30
709    1.2.0

Wie Sie aus den Zeilen über 700 erraten können, ist das id einer Erweiterung mit dem Namen files_joomla, D. H. Joomla.

Weitere Informationen hierzu finden Sie im Artikel " Verwalten von Komponentenaktualisierungen (SQL-Dateien aktualisieren) " in Joomla Doc.

Die meisten Leute vermissen diesen Hinweis im Artikel:

Wichtiger Hinweis: Mit diesen Dateien wird auch die Versionsnummer in der Tabelle #__schemas festgelegt. Diese Versionsnummer muss in der aktuellen Version der Komponente vorhanden sein, damit die neuen SQL-Dateien während der Aktualisierung ausgeführt werden. Wenn Sie beispielsweise Version 1.0 haben und auf Version 1.1 aktualisieren, wird die Datei 1.1.sql nicht ausgeführt, wenn in Version 1.0 keine Datei 1.0.sql vorhanden war. Aus diesem Grund empfiehlt es sich, für jede Version eine SQL-Aktualisierungsdatei zu haben, auch wenn in dieser Version keine SQL-Änderungen vorgenommen wurden. Sie können einfach eine leere Datei oder eine Datei mit einer Kommentarzeile verwenden.

1
Craig