X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fhtml%2Fch04s03.html;h=39f03d32c1cf0a4c32bf0c821f7977d73a85113d;hb=16c6be411e2eddf778e665b0da6c452c42b676af;hp=20ec5cabe3d38e9bc0c0719b1a9b189a24e8320b;hpb=caf4380789ea2166eaf89f7a600406f850d64428;p=kivitendo-erp.git diff --git a/doc/html/ch04s03.html b/doc/html/ch04s03.html index 20ec5cabe..39f03d32c 100644 --- a/doc/html/ch04s03.html +++ b/doc/html/ch04s03.html @@ -1,6 +1,6 @@
-Der alte Mechanismus für SQL-Upgradescripte, der auf einer +
Der alte Mechanismus für SQL-Upgradescripte, der auf einer Versionsnummer beruht und dann in sql/Pg-upgrade nach einem Script für diese Versionsnummer sucht, schränkt sehr ein, z.B. was die parallele Entwicklung im stable- und unstable-Baum betrifft.
Dieser Mechanismus wurde für kivitendo 2.4.1 deutlich erweitert. @@ -31,11 +31,10 @@ erlaubt und sollten stattdessen mit Unterstrichen ersetzt werden.
charset
- Empfohlen. Gibt den Zeichensatz an, in dem das Script
- geschrieben wurde, z.B. "UTF-8
". Aus
- Kompatibilitätsgründen mit alten Upgrade-Scripten wird bei
- Abwesenheit des Tags der Zeichensatz
- "ISO-8859-15
" angenommen.
Empfohlen. Gibt den Zeichensatz an, in dem das Script geschrieben wurde, z.B. "UTF-8
". Aus
+ Kompatibilitätsgründen mit alten Upgrade-Scripten wird bei Abwesenheit des Tags für SQL-Upgradedateien der Zeichensatz
+ "ISO-8859-15
" angenommen. Perl-Upgradescripte hingegen müssen immer in UTF-8 encodiert sein und sollten
+ demnach auch ein "use utf8;
" enthalten.
description
Benötigt. Eine Beschreibung, was in diesem Update
passiert. Diese wird dem Benutzer beim eigentlichen
@@ -67,7 +66,33 @@
ignore
Optional. Falls der Wert auf 1 (true) steht, wird das Skript bei der Anmeldung ignoriert und entsprechend nicht - ausgeführt.
In Perl geschriebene Datenbankscripte werden nicht einfach so ausgeführt sondern müssen sich an gewisse Konventionen + halten. Dafür bekommen sie aber auch einige Komfortfunktionen bereitgestellt.
Ein Upgradescript stellt dabei eine vollständige Objektklasse dar, die vom Elternobjekt
+ "SL::DBUpgrade2::Base
" erben und eine Funktion namens "run
" zur Verfügung stellen muss. Das
+ Script wird ausgeführt, indem eine Instanz dieser Klasse erzeugt und darauf die erwähnte "run
" aufgerufen
+ wird.
Zu beachten ist, dass sich der Paketname der Datei aus dem Wert für "@tag
" ableitet. Dabei werden alle
+ Zeichen, die in Paketnamen ungültig wären (gerade Bindestriche), durch Unterstriche ersetzt. Insgesamt sieht der Paketname wie folgt
+ aus: "SL::DBUpgrade2::tag
".
Welche Komfortfunktionen zur Verfügung stehen, erfahren Sie in der Perl-Dokumentation zum oben genannten Modul; aufzurufen mit + "perldoc SL/DBUpgrade2/Base.pm".
Ein Mindestgerüst eines gültigen Perl-Upgradescriptes sieht wie folgt aus:
# @tag: beispiel-upgrade-file42 +# @description: Ein schönes Beispielscript +# @depends: release_3_0_0 +package SL::DBUpgrade2::beispiel_upgrade_file42; + +use strict; +use utf8; + +use parent qw(SL::DBUpgrade2::Base); + +sub run { + my ($self) = @_; + + # hier Aktionen ausführen + + return 1; +} + +1; +