Inhaltsverzeichnis

Benutzung und Einsatz des SQL-Dump-Konverters

1. Erstellen einer Strukturdatei mittels phpMyAdmin

  1. Starten Sie phpMyAdmin und öffnen Sie die benötigte Datenbank.
  2. Klicken Sie oben in der Menüleiste auf Exportieren. Es erscheint dann ein Bildschirm ähnlich dem folgenden.
  3. Wählen Sie alle benötigten Tabellen Ihres Addons aus.
  4. Machen Sie alle weiteren Einstellungen sinngemäß der Vorlage.
  5. Starten sie den Download durch Klick auf den OK-Button ganz unten.
  6. Speichern Sie die empfangene *.sql Datei auf Ihrem Rechner ab.

2. Konvertieren der *.sql Datei

Normalerweise geht es jetzt an's Eingemachte. Aus dem Dump mit viel Handarbeit sehr viele Zeilen schöne PHP-SQL Statements basteln, die dann einzeln zum Server gesendet werden.
Das ist uns zu umständlich, deshalb machen wir das 'etwas' einfacher:

  1. Erst einmal wird der Konverter gestartet, indem dieser Link SQL-Dump-Konverter angeklickt wird.
  2. Nachdem der Konverter gestartet ist, mit Durchsuchen die soeben erzeugte Dump-Datei auswählen.
  3. Eventuell noch den Präfix der Tabellen an den in der Ursprungs-Datenbank benutzten anpassen.
  4. Falls keine weiteren Sonderwünsche bestehen: Konvertierung starten anklicken.
  5. nach wenigen Augenblicken wird die konvertierte Datei bereits zum Download angeboten.
  6. Die neu erzeugte Datei auf dem Rechner speichern, fertig.

(Zu Beruhigung der um den Datenschutz Besorgten: Es wird weder die Quell- noch die Zieldatei auf dem Server gespeichert.)

3. Einbinden der Strukturdatei (nur ab 2.8.4)

Nichts einfacher als das.
Dazu muss einfach nur die install-struct.sql in das Hauptverzeichnis des Addons (dort wo auch die install.php zu finden ist) kopiert werden. Der nachfolgende Code zeigt die Einbindung in die Dateien install.php, uninstall.php und upgrade.php eines Addons.

install-upgrade.php
<?php
// Must include code to stop this file being accessed directly
/* -------------------------------------------------------- */
    if (!defined('SYSTEM_RUN')) { die('Cannot access this file directly'); }
/* -------------------------------------------------------- */
// --- process import file to create addons tables ----------
    $sSqlStructFile = __DIR__.'/install-struct.sql';
    if (is_readable($sSqlStructFile)) {
        $oImporter = new SqlImport(WbDatabase::getInstance(), $sSqlStructFile);
        if ($oImporter->doImport(__FILE__)) {
// --- finish process import file ---------------------------------
// --- begin all other individual stuff ---------------------------
 
    /*
     * do all other stuff
     */
 
// --- end of all other individual stuff --------------------------
        } else {
            $aError[] = $oImporter->getError();    
        } //endif
        unset($oImporter);
    } else {
        $aError[] = 'missing or not readable file \"'.basename(__DIR__).'/install-struct.sql\"';
    } //endif
/* **** END INSTALL / UNINSTALL / UPGRADE *********************************** */
uninstall.php
<?php
// Must include code to stop this file being accessed directly
/* -------------------------------------------------------- */
    if (!defined('SYSTEM_RUN')) { die('Cannot access this file directly'); }
/* -------------------------------------------------------- */
// --- begin all other individual stuff ---------------------------
 
    /*
     * do all other stuff
     */
 
// --- end of all other individual stuff --------------------------
// --- process import file to delete addons tables ----------
    $sSqlStructFile = __DIR__.'/install-struct.sql';
    if (is_readable($sSqlStructFile)) {
        $oImporter = new SqlImport(WbDatabase::getInstance(), $sSqlStructFile);
        if (!$oImporter->doImport(__FILE__)) {
            $aError[] = $oImporter->getError();
        }
        unset($oImporter);
    } else {
        $aError[] = 'missing or not readable file \"'.basename(__DIR__).'/install-struct.sql\"';
    } //endif
// --- finish process import file ---------------------------------
/* **** END INSTALL / UNINSTALL / UPGRADE *********************************** */

Ich würde dazu gerne noch mehr schreiben, aber DAS war es bereits. Mehr gibt es nicht zu tun.

PS: das obige Codebeispiel kann durch simples anklicken des Labels auch heruntergeladen werden….
Manuela v.d.Decken  08.09.2014