Zum Inhalt springen

Update-Skript für eine neue Version

Erstellt am 18. November 2009 · 4 Antworten · letzte Antwort am 24. November 2009

Tags: Datenbank, Frage

intensivstation ·

Nehmen wir mal an, ich habe etwas nur suboptimal gemacht und möchte das nun korrigieren.
Ich ändere nun ein paar Daten in der tca.php und ext_tables.sql.
Nun muss aber auch ein PHP-Skript hingehen und Daten aus einer Tabelle in die verbeserte Tabelle verschieben. Die alte Tabelle kann dann gelöscht werden.

Wie kann man das machen, damit beim installieren der neuen Version dieser Extension automatisch
dieses Bereinigungs-Skript ausgeführt wird???
Kann man dieses Bereinigungs-Zeugs in die tca.php packen oder wie oder was?

Julian.​Hofmann ·

Hallo.

Weiß jetzt nicht,w ie es genua gelöst ist, aber mir fällt die static_info_tables ein. Dort wird auch bei der Installation erst die DB angelegt, und in einem zweiten Schritt werden - nach Auswahl des Charsets - werden die Daten importiert. Denke über denselben Weg könnte/sollte Dein problem lösbar sein.

Viele Grüße
Julian

InforMedic ·

..oder sr_feuser_register

Da wird ca. eine halbe tonne an hooks und anderen classes geladen. Auf die gleiche Art und weise kann das script geladen und ausgeführt werden. Ob das jetzt ein hook ist oder eine weitere Klasse, ist beim Install der Ext. erstmal zweitrangig..

just2b ·

du erstellst eine datei class.ext_update.php im ordner der extension und darin eine klasse ext_update und eine funktion main()

darin kannst du dann updaten wie du willst und aufgerufen kann die funktion über den extension manager werden

georg

intensivstation ·

Der Tip zu static_info_tables war gut. Dort habe ich ein Beispiel für die Sache mit der "class.ext_update.php" gefunden.
Damit funktioniert das wunderbar.
Einziger Nachtiel: man muss die Benutzer darauf hinweisen, dass sie den Menüpunkt "UPDATE!" auswählen müssen.

Eleganter hätte mir eine andere Variante gefallen:
Checkboxen direkt nach dem Installieren der Extension bekommt man, wenn man Einträge in eine Datei Namens "ext_conf_template.txt" hinzufügt.
Die Sache scheint sich aber nicht für SQL-Statements zu eignen. Ich wüsste jedenfalls nicht, wohin ich die dann packen sollte.

Ich werde also bei der "class.ext_update.php"-Lösung bleiben.