SQL Anywhere リモート・データベースを配備した後に、そのスキーマを変更することができます。
リモート・データベースに他の接続がないことが確実である場合は、ALTER PUBLICATION 文を手動で使用して、新規または変更したテーブルをパブリケーションに追加できます。それ以外の場合は、sp_hook_dbmlsync_schema_upgrade フックを使用して、スキーマをアップグレードしてください。
sp_hook_dbmlsync_schema_upgradeを参照してください。
関連するテーブル・スクリプトを統合データベースに追加します。
新しいテーブルのないリモート・データベースと、新しいテーブルのあるリモート・データベースには、同じスクリプト・バージョンを使用できます。ただし、新しいテーブルが存在することによって既存のテーブルの同期方法が変更される場合は、新しいスクリプト・バージョンを作成し、そのスクリプト・バージョンで同期されるすべてのテーブルに対して新しいスクリプトを作成する必要があります。
通常の同期を実行します。同期処理が正常に実行されたことを確認してから、次の処理を続行してください。
ALTER PUBLICATION 文を使用して、テーブルを追加します。次に例を示します。
ALTER PUBLICATION your_pub ADD TABLE table_name; |
この文は、sp_hook_dbmlsync_schema_upgrade フックの内部で使用できます。sp_hook_dbmlsync_schema_upgradeを参照してください。
詳細については、ALTER PUBLICATION 文 [Mobile Link] [SQL Remote]を参照してください。
同期を実行します。必要な場合は、新しいスクリプト・バージョンを使用します。
既存テーブルのカラムの数か型を変更する場合は、注意してください。Mobile Link クライアントが新しいスキーマで同期する場合、upload_update や download_cursor などのスクリプトが必要です。これらのスクリプトには、リモート・テーブルの全カラム用のパラメータがあります。古いリモート・データベースの場合は、元のカラムだけを保持するスクリプトが必要です。
統合データベースで、新しいスクリプト・バージョンを作成します。
詳細については、スクリプト・バージョンを参照してください。
新しいスクリプト・バージョンには、古いスクリプト・バージョンで同期された変更対象のテーブルを含むパブリケーションのすべてのテーブルに対してスクリプトを作成します。
リモート・データベースで、古いスクリプト・バージョンを使用して通常の同期を実行します。同期処理が正常に実行されたことを確認してから、次の処理を続行してください。
リモート・データベースで、ALTER PUBLICATION 文を使用して、テーブルをパブリケーションから一時的に削除します。次に例を示します。
ALTER PUBLICATION your_pub DROP TABLE table_name; |
詳細については、ALTER PUBLICATION 文 [Mobile Link] [SQL Remote]を参照してください。
この文は、sp_hook_dbmlsync_schema_upgrade フックの内部で使用できます。sp_hook_dbmlsync_schema_upgradeを参照してください。
リモート・データベースで、ALTER TABLE 文を使用してテーブルを変更します。
詳細については、ALTER TABLE 文を参照してください。
リモート・データベースで、ALTER PUBLICATION 文を使用して、テーブルをパブリケーションに戻します。
詳細については、ALTER PUBLICATION 文 [Mobile Link] [SQL Remote]を参照してください。
この文は、sp_hook_dbmlsync_schema_upgrade フックの内部で使用できます。sp_hook_dbmlsync_schema_upgradeを参照してください。
新しいスクリプト・バージョンを使用して同期します。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |