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

SQL Anywhere 12.0.1 » Ultra Light データベース管理とリファレンス » Ultra Lightの配備

 

Ultra Light データベーススキーマのアップグレードの配備

Ultra Light データベーススキーマのアップグレードは、次のいずれかの方法で配備できます。

  • 個々の DDL 文   たとえば、Ultra Light C では、次の文を実行して新しいパブリケーションを作成できます。
    dbconnection->ExecuteStatement("CREATE PUBLICATION p (table t)");

  • ALTER DATABASE SCHEMA FROM FILE 文   DDL 文の要件がわからない場合、または個々の DDL 文を指定したくない場合は、この文を使用してスキーマのアップグレードを実行できます。使用する SQL ファイルには、新しいスキーマ全体が含まれている必要があります。

警告

スキーマのアップグレード中にデバイスをリセットしないでください。スキーマのアップグレード中にデバイスをリセットすると、データが失われ、Ultra Light データベースが「不正」としてマークされます。

ALTER DATABASE SCHEMA FROM FILE 文を使用して Ultra Light データベーススキーマをアップグレードすると、Ultra Light で次の手順が実行されます。

  1. 新しいデータベーススキーマと既存のデータベーススキーマの違いが比較されます。

  2. 既存のデータベースのスキーマは変更されます。

  3. 新しいスキーマに適合しないローは削除されます。次に例を示します。

    • テーブルに一意性制約を追加し、同じ値を持つローが複数ある場合は、1 つのロー以外すべて削除される。

    • カラムドメインを変更して変換エラーが発生した場合は、そのローが削除される。たとえば、VARCHAR カラムを INT カラムに変更した場合、ローの値が ABCD であれば、そのローは削除されます。

    • 新しいスキーマに新しい外部キーがあり、外部ローに一致するプライマリローがない場合は、これらのローが削除される。

  4. ローが削除されると、SQLE_ROW_DROPPED_DURING_SCHEMA_UPGRADE (130) 警告が発行されます。

 ♦ ALTER DATABASE SCHEMA FROM FILE 文を使用した Ultra Light データベーススキーマのアップグレード
  1. 完全に新しいスキーマを作成するには、DDL 文の SQL スクリプトを作成します。

    配備先のマシン上にマスタースキーマを保持し、アプリケーションの変更に応じてスキーマをアップグレードすることができます。

    スクリプトに必要な DDL 文を抽出するには、ulinit または ulunload のいずれかのユーティリティを使用します。これらのユーティリティを次のオプションとともに使用して、DDL 文が構文的に正しいことを確認してください。

    • Ultra Light データベースの場合、ulunload ユーティリティを使用し、-n および -s [ schema-file ] オプションを指定する。次に例を示します。

      ulunload -c dbf=mydatabase.udb -n -s MySchema.sql
    • SQL Anywhere データベースの場合、ulinit ユーティリティを使用し、-l [ file ] オプションを指定する。次に例を示します。

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

    ulunload および ulinit ユーティリティを使用しない場合は、スクリプトで次の事項を確認してください。

    • スクリプトに、CREATE 文によって目的のスキーマ全体が宣言されている。

    • 表、カラム、パブリケーションの名前が変更されていない。RENAME 操作はサポートされていません。テーブルの名前を変更すると、DROP TABLE 操作または CREATE TABLE 操作として処理されます。

    • 影響が発生しない可能性がある文も含め、DDL 文以外の文が含まれていない。

    • SQL 文の語はスペースで区切る。

    • 各行に 1 つの SQL 文だけが表示されている。

    • コメントの先頭には、二重ハイフン (-) を付ける。コメントを指定できるのは、行の先頭のみです。

    • 各文が、GO という単語を含む 1 行によって区切られている。

  2. 新しい SQL スクリプトファイルの配備

  3. データベースが同期されていることを確認します。

  4. デバイス上で新しい文を実行します。次に例を示します。

    ALTER DATABASE SCHEMA FROM FILE 'MySchema.sql';
 エラー通知
 参照