Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » UltraLite - Datenbankverwaltung » UltraLite-Deployment

 

Deployment von UltraLite-Datenbankschema-Upgrades

UtraLite-Datenbankschema-Upgrades können mit einer der folgenden Methoden bereitgestellt werden:

  • Einzelne DDL-Anweisungen   Beispiel: In UltraLite C können Sie die folgende Anweisung ausführen, um eine neue Publikation zu erstellen:
    dbconnection->ExecuteStatement("CREATE PUBLICATION p (table t)");

  • ALTER DATABASE SCHEMA FROM FILE-Anweisung   Diese Anweisung kann für die Durchführung von Schema-Upgrades verwendet werden, wenn Sie die DDL-Anweisungsanforderungen nicht kennen oder die einzelnen DDL-Anweisungen nicht angeben möchten. Die verwendete SQL-Datei muss das komplette neue Schema enthalten.

Achtung

Setzen Sie ein Gerät nicht während des Schema-Upgrades zurück. Wenn Sie das Gerät während eines Schema-Upgrades zurücksetzen, gehen Daten verloren und die UltraLite-Datenbank wird als "beschädigt" gekennzeichnet.

UltraLite führt die folgenden Schritte aus, wenn Sie ein Upgrade eines UltraLite-Datenbankschemas mit der ALTER DATABASE SCHEMA FROM FILE-Anweisung verwenden:

  1. Das neue und das bestehende Datenbankschema werden miteinander verglichen, um die Unterschiede zu ermitteln.

  2. Das Schema der bestehenden Datenbank wird geändert.

  3. Zeilen, die nicht dem neuen Schema entsprechen, werden gelöscht. Beispiel:

    • Wenn Sie eine Eindeutigkeits-Integritätsregel einer Tabelle hinzufügen und mehrere Zeilen mit denselben Werten vorhanden sind, werden alle Zeilen bis auf eine gelöscht.

    • Wenn Sie versuchen, eine Spaltendomäne zu ändern, und ein Konvertierungsfehler auftritt, wird diese Zeile gelöscht. Beispiel: Wenn Sie eine VARCHAR-Spalte haben, sie in eine INT-Spalte konvertieren und der Wert der Zeile ABCD ist, wird die Zeile gelöscht.

    • Wenn Ihr neues Schema neue Fremdschlüssel aufweist und die Fremdschlüsselzeile keine passende Primärschlüsselzeile hat, werden diese Zeilen gelöscht.

  4. Wenn Zeilen gelöscht werden, wird eine Warnung SQLE_ROW_DROPPED_DURING_SCHEMA_UPGRADE (130) ausgegeben.

 Upgrade eines UltraLite-Datenbankschemas mit der ALTER DATABASE SCHEMA FROM FILE-Anweisung
  1. Erstellen Sie ein SQL-Skript der DDL-Anweisungen zum Erstellen eines völlig neuen Schemas.

    Sie können ein Masterschema auf Ihrem Entwicklercomputer aufbewahren und das Schema aktualisieren, wenn sich Ihre Anwendung ändert.

    Verwenden Sie die Dienstprogramme ulinit oder ulunload zum Extrahieren der für Ihr Skript erforderlichen DDL-Anweisungen. Indem Sie diese Dienstprogramme mit den folgenden Optionen verwenden, stellen Sie sicher, dass die DDL-Anweisungen syntaktisch korrekt sind:

    • Für eine UltraLite-Datenbank verwenden Sie das Dienstprogramm ulunload mit den Optionen -n und -s [Schemadatei]. Beispiel:

      ulunload -c dbf=mydatabase.udb -n -s MySchema.sql
    • Für eine SQL Anywhere-Datenbank verwenden Sie das Dienstprogramm ulinit mit den Optionen -a und -l [Schemadatei]. Beispiel:

      ulinit -a "dsn=mysqlanywheredatabase" -l MySchema.sql 

    Wenn Sie weder ulunload noch ulinit verwenden, überprüfen Sie das Skript und stellen Sie Folgendes sicher:

    • Das Skript deklariert das gesamte gewünschte Schema mit CREATE-Anweisungen.

    • Tabellen, Spalten und Publikationen werden nicht umbenannt. Der RENAME-Vorgang wird nicht unterstützt. Umbenannte Tabellen werden als DROP TABLE- und CREATE TABLE-Vorgang verarbeitet.

    • Es gibt keine Non-DDL Anweisungen, auch keine Non-DDL Anweisungen, die möglicherweise nicht den erwarteten Effekt haben.

    • Wörter in der SQL-Anweisung werden durch Leerstellen getrennt.

    • Nur eine SQL-Anweisung darf in der jeweiligen Zeile erscheinen.

    • Kommentaren wird ein doppelter Bindestrich (-) vorangestellt, und sie treten nur am Anfang der Zeile auf.

    • Jede Anweisung wird durch eine Zeile getrennt, die genau dem Wort GO entspricht.

  2. Nehmen Sie das Deployment der neuen SQL-Skriptdatei vor.

  3. Vergewissern Sie sich, dass die Datenbank synchronisiert ist.

  4. Führen Sie die neue Anweisung auf dem Gerät aus. Beispiel:

    ALTER DATABASE SCHEMA FROM FILE 'MySchema.sql';
 Fehlerbenachrichtigung
 Siehe auch