アプリのバージョンとパッチの作成¶
このトピックでは、Native Apps Frameworkを使用して作成されたアプリケーションにバージョンとパッチを追加する方法について説明します。
バージョンとパッチに関する一般的な情報と、それらがアプリのアップデートとアップグレードにどのように使われるかについては、 アプリのバージョンとパッチについて をご参照ください。
アプリケーションパッケージにバージョンやパッチを追加する¶
アプリケーションのバージョンとパッチはアプリケーションパッケージで定義されます。
アプリケーション・パッケージにバージョンやパッチを追加した後、プロバイダーはそのバージョンやパッチに基づいてアプリケーション・オブジェクトを作成することで、変更をローカルでテストすることができます。
詳細については、 バージョンまたはパッチレベルからオブジェクトを作成する をご参照ください。
バージョンやパッチの追加・削除に必要な権限¶
アプリケーションパッケージのバージョンやパッチを指定するには、そのアプリケーションパッケージのロールに以下のいずれかの権限が付与されている必要があります。
OWNERSHIP
MANAGE VERSIONS
たとえば、アプリケーションパッケージの MANAGE VERSION 権限を release_mgr
ロールに付与するには、次の例に示すように GRANT <権限> コマンドを使用します。
GRANT MANAGE VERSIONS ON APPLICATION PACKAGE hello_snowflake_package
TO ROLE release_mgr;
アプリケーションパッケージへのバージョンの追加¶
SQL を使ってアプリケーション・パッケージにバージョンを追加するには、 ALTER APPLICATION PACKAGE コマンドを実行します。
ALTER APPLICATION PACKAGE MyAppPackage
ADD VERSION v1
USING '@dev_stage/v1'
LABEL = 'MyApp Version 1.0';
この例では、 v1
がバージョンの識別子です。この識別子は、コンシューマーがアプリケーションをインストールする際には見えません。コンシューマーには、 LABEL 句で定義されたバージョン情報が表示されます。
注意
同時に存在できるアプリケーションのバージョンは2つのみです。詳細については、 アプリのバージョンとパッチについて をご参照ください。
バージョン名とラベルは、 manifest.yml
ファイルで定義するか、 ALTER APPLICATION PACKAGE コマンドで直接指定できます。SQL コマンドと同様に manifest.yml
ファイルで定義した場合は、 SQL コマンドで指定した値が manifest.yml
ファイルで指定した値よりも優先されます。
アプリケーションパッケージへのパッチの追加¶
アプリのバージョンを作成するだけでなく、特定のバージョンのパッチを作成することもできます。バージョンと同様に、アプリパッチにも独自のアプリケーションファイルがあります。
アプリケーションパッケージの新しいパッチを作成するには、次の例に示すように ALTERAPPLICATIONPACKAGE ... VERSION コマンドの ADD PATCH FOR VERSION 句を使用します。
ALTER APPLICATION PACKAGE MyAppPackage
ADD PATCH FOR VERSION V1_0
USING '@dev_stage/v1_0_p1;
この例では、パッチ番号は ADD PATCH FOR VERSION V1_0句には提供されません。この場合、Snowflakeは自動的にパッチ番号を1だけインクリメントします。
カスタムパッチ番号でアプリケーションの新しいパッチを作成するには、次の例に示すように ALTERAPPLICATIONPACKAGE ... VERSION コマンドの ADD PATCH FOR VERSION 句にパッチ番号を提供します。
ALTER APPLICATION PACKAGE MyAppPackage
ADD PATCH 3
FOR VERSION V1_0
USING '@dev_stage/v1_p1;
アプリケーションパッケージのバージョンとパッチの表示¶
プロバイダーとして、アプリケーションパッケージに対して SHOW VERSIONS コマンドを実行すると、アプリケーションに定義されたバージョンとパッチを表示することができます。
次のコマンドは、 hello_snowflake_package
という名前のアプリケーションパッケージに定義されているバージョンとパッチを表示します。
SHOW VERSIONS IN APPLICATION PACKAGE hello_snowflake_package;
アプリケーションパッケージからバージョンを削除する¶
アプリケーションパッケージからバージョンを削除するには、削除したいバージョンを指す リリースディレクティブ が現在存在しないことを確認する必要があります。
リリースディレクティブの表示については アプリケーションパッケージのリリースディレクティブの表示 をご参照ください。
アプリケーションパッケージからバージョンを削除するには、次の例に示すように ALTER APPLICATION PACKAGE コマンドの DROP VERSION 句を使用します。
ALTER APPLICATION PACKAGE hello_snowflake_package
DROP VERSION v1_0;
このコマンドの実行後も、アプリのインストール済みインスタンスがすべて削除されるまで、バージョンはドロップされません。ドロップコマンドのステータスを確認するには、次の例のように SHOW VERSIONS を使用します。
SHOW VERSIONS IN APPLICATION PACKAGE hello_snowflake_package;
dropped_on
列には、ドロップが開始されたときのタイムスタンプが一覧表示されます。
注釈
ドロップされたバージョンは、ステータスが DROPPED
の間だけ、このコマンドの出力に表示されます。アプリのインストール済みインスタンスがすべて削除されると、削除されたバージョンは表示されなくなります。
あるバージョンが削除されると、コンシューマーはそのバージョンのアプリを新たにインストールすることができなくなります。
アプリケーションがどのようにコンシューマーに公開されるかによって、バージョンがドロップされるまでにかかる時間は異なります。
アプリケーションパッケージがコンシューマーに公開されていない場合、そのバージョンは直ちにドロップされます。
アプリケーションパッケージが1つのリージョン内でパブリックリストまたはプライベートリストとして公開されている場合、そのバージョンは直ちにドロップされます。
アプリケーションパッケージが、アプリケーションパッケージと同じリージョン内で共有されるリストのデータ製品として公開された場合、そのバージョンは数時間以内にドロップされます。
アプリケーションパッケージが クロスクラウド自動複製 を使用したリストのデータ製品として公開されている場合、すべてのリージョンでバージョンがドロップされるまでに時間がかかることがあります。