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

SQL Anywhere 11.0.1 (Deutsch) » UltraLite - Datenbankverwaltung » UltraLite-Datenbanken verwenden » UltraLite-Deployment auf Geräte

 

Deployment von UltraLite-Schema-Upgrades

Um Schema-Upgrades durchzuführen, verwenden Sie die SQL-Anweisung ALTER DATABASE SCHEMA FROM FILE.

Der Upgrade-Vorgang
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.

  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. Zum 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. Wenn Sie z.B. eine VARCHAR-Spalte 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.

♦  So führen Sie ein Upgrade des UltraLite-Schemas durch
  1. Erstellen Sie ein SQL-Skript der DDL-Anweisungen, um das neue Schema festzulegen. Der Zeichensatz der SQL-Skriptdatei muss mit dem Zeichensatz der Datenbank übereinstimmen, bei der Sie das Upgrade durchführen wollen.

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

    • Bei ulunload verwenden Sie die Optionen -n und -s [ Datei ].

    • Bei ulinit verwenden Sie die Option -l [ Datei ].

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

    • Sie benennen keine Tabellen, Spalten oder Publikationen um. RENAME-Vorgänge werden nicht unterstützt. Wenn Sie eine Tabelle umbenennen, wird sie wie in einem DROP TABLE- und CREATE TABLE-Vorgang abgearbeitet.

    • Sie haben keine Nicht-DDL-Anweisungen verwendet. Das Einbeziehen von Nicht-DDL-Anweisungen kann zu unerwarteten Auswirkungen führen.

    • 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.

  2. Sichern Sie die Datenbank, bei der das Upgrade durchgeführt wird.

  3. Führen Sie die neue Anweisung aus. Zum Beispiel:

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

Da das UltraLite Fehler-Callback während des Upgrade-Vorgangs aktiv ist, werden Sie über Fehler während des Konvertierungsprozesses benachrichtigt. SQLE_CONVERSION_ERROR z.B. gibt in seinen Parametern Auskunft über alle Werte, die nicht konvertiert werden konnten. Fehler bedeuten nicht, dass der Vorgang fehlgeschlagen ist. Der letzte SQL-Code nach der Anweisung gibt in diesem Fall eine 130-Warnung zurück. Diese Warnungen beschreiben Vorgänge des Konvertierungsprozesses und stoppen nicht den Upgrade-Prozess.

Siehe auch