Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f1a40f51

Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt

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

Perl-Datenbank-Upgradescripte: Dokumentationsupdate

Unterschiede anzeigen:

doc/dokumentation.xml
5568 5568
            <term><varname>charset</varname></term>
5569 5569

  
5570 5570
            <listitem>
5571
              <para>Empfohlen. Gibt den Zeichensatz an, in dem das Script
5572
              geschrieben wurde, z.B. "<literal>UTF-8</literal>". Aus
5573
              Kompatibilitätsgründen mit alten Upgrade-Scripten wird bei
5574
              Abwesenheit des Tags der Zeichensatz
5575
              "<literal>ISO-8859-15</literal>" angenommen.</para>
5571
              <para>Empfohlen. Gibt den Zeichensatz an, in dem das Script geschrieben wurde, z.B. "<literal>UTF-8</literal>". Aus
5572
              Kompatibilitätsgründen mit alten Upgrade-Scripten wird bei Abwesenheit des Tags für SQL-Upgradedateien der Zeichensatz
5573
              "<literal>ISO-8859-15</literal>" angenommen. Perl-Upgradescripte hingegen müssen immer in UTF-8 encodiert sein und sollten
5574
              demnach auch ein "<literal>use utf8;</literal>" enthalten.</para>
5576 5575
            </listitem>
5577 5576
          </varlistentry>
5578 5577

  
......
5640 5639
        </variablelist>
5641 5640
      </sect2>
5642 5641

  
5642
      <sect2 id="db-upgrade-files.format-perl-files" xreflabel="Format von Perl-Upgradedateien">
5643
       <title>Format von in Perl geschriebenen Datenbankupgradescripten</title>
5644

  
5645
       <para>In Perl geschriebene Datenbankscripte werden nicht einfach so ausgeführt sondern müssen sich an gewisse Konventionen
5646
       halten. Dafür bekommen sie aber auch einige Komfortfunktionen bereitgestellt.</para>
5647

  
5648
       <para>Ein Upgradescript stellt dabei eine vollständige Objektklasse dar, die vom Elternobjekt
5649
       "<literal>SL::DBUpgrade2::Base</literal>" erben und eine Funktion namens "<literal>run</literal>" zur Verfügung stellen muss. Das
5650
       Script wird ausgeführt, indem eine Instanz dieser Klasse erzeugt und darauf die erwähnte "<literal>run</literal>" aufgerufen
5651
       wird.</para>
5652

  
5653
       <para>Zu beachten ist, dass sich der Paketname der Datei aus dem Wert für "<literal>@tag</literal>" ableitet. Dabei werden alle
5654
       Zeichen, die in Paketnamen ungültig wären (gerade Bindestriche), durch Unterstriche ersetzt. Insgesamt sieht der Paketname wie folgt
5655
       aus: "<literal>SL::DBUpgrade2::tag</literal>".</para>
5656

  
5657
       <para>Welche Komfortfunktionen zur Verfügung stehen, erfahren Sie in der Perl-Dokumentation zum oben genannten Modul; aufzurufen mit
5658
       "<command>perldoc SL/DBUpgrade2/Base.pm</command>".</para>
5659

  
5660
       <para>Ein Mindestgerüst eines gültigen Perl-Upgradescriptes sieht wie folgt aus:</para>
5661

  
5662
       <programlisting># @tag: beispiel-upgrade-file42
5663
# @description: Ein schönes Beispielscript
5664
# @depends: release_3_0_0
5665
package SL::DBUpgrade2::beispiel_upgrade_file42;
5666

  
5667
use strict;
5668
use utf8;
5669

  
5670
use parent qw(SL::DBUpgrade2::Base);
5671

  
5672
sub run {
5673
  my ($self) = @_;
5674

  
5675
  # hier Aktionen ausführen
5676

  
5677
  return 1;
5678
}
5679

  
5680
1;
5681
</programlisting>
5682
      </sect2>
5683

  
5643 5684
      <sect2 id="db-upgrade-files.dbupgrade-tool"
5644 5685
             xreflabel="Hilfsscript dbupgrade2_tool.pl">
5645 5686
        <title>Hilfsscript dbupgrade2_tool.pl</title>

Auch abrufbar als: Unified diff