Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f1a40f51

Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt

  • ID f1a40f51c548b045c6d4ae38766bf7094a8f193a
  • Vorgänger 347f2cff
  • Nachfolger 7d607d91

Perl-Datenbank-Upgradescripte: Dokumentationsupdate

Unterschiede anzeigen:

doc/dokumentation.xml
<term><varname>charset</varname></term>
<listitem>
<para>Empfohlen. Gibt den Zeichensatz an, in dem das Script
geschrieben wurde, z.B. "<literal>UTF-8</literal>". Aus
Kompatibilitätsgründen mit alten Upgrade-Scripten wird bei
Abwesenheit des Tags der Zeichensatz
"<literal>ISO-8859-15</literal>" angenommen.</para>
<para>Empfohlen. Gibt den Zeichensatz an, in dem das Script geschrieben wurde, z.B. "<literal>UTF-8</literal>". Aus
Kompatibilitätsgründen mit alten Upgrade-Scripten wird bei Abwesenheit des Tags für SQL-Upgradedateien der Zeichensatz
"<literal>ISO-8859-15</literal>" angenommen. Perl-Upgradescripte hingegen müssen immer in UTF-8 encodiert sein und sollten
demnach auch ein "<literal>use utf8;</literal>" enthalten.</para>
</listitem>
</varlistentry>
......
</variablelist>
</sect2>
<sect2 id="db-upgrade-files.format-perl-files" xreflabel="Format von Perl-Upgradedateien">
<title>Format von in Perl geschriebenen Datenbankupgradescripten</title>
<para>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.</para>
<para>Ein Upgradescript stellt dabei eine vollständige Objektklasse dar, die vom Elternobjekt
"<literal>SL::DBUpgrade2::Base</literal>" erben und eine Funktion namens "<literal>run</literal>" zur Verfügung stellen muss. Das
Script wird ausgeführt, indem eine Instanz dieser Klasse erzeugt und darauf die erwähnte "<literal>run</literal>" aufgerufen
wird.</para>
<para>Zu beachten ist, dass sich der Paketname der Datei aus dem Wert für "<literal>@tag</literal>" ableitet. Dabei werden alle
Zeichen, die in Paketnamen ungültig wären (gerade Bindestriche), durch Unterstriche ersetzt. Insgesamt sieht der Paketname wie folgt
aus: "<literal>SL::DBUpgrade2::tag</literal>".</para>
<para>Welche Komfortfunktionen zur Verfügung stehen, erfahren Sie in der Perl-Dokumentation zum oben genannten Modul; aufzurufen mit
"<command>perldoc SL/DBUpgrade2/Base.pm</command>".</para>
<para>Ein Mindestgerüst eines gültigen Perl-Upgradescriptes sieht wie folgt aus:</para>
<programlisting># @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;
</programlisting>
</sect2>
<sect2 id="db-upgrade-files.dbupgrade-tool"
xreflabel="Hilfsscript dbupgrade2_tool.pl">
<title>Hilfsscript dbupgrade2_tool.pl</title>

Auch abrufbar als: Unified diff