アプリのバージョンとパッチの作成

このトピックでは、Native Apps Frameworkを使用して作成されたアプリケーションにバージョンとパッチを追加する方法について説明します。

バージョンとパッチに関する一般的な情報と、それらがアプリのアップデートとアップグレードにどのように使われるかについては、 アプリのバージョンとパッチについて をご参照ください。

アプリケーションパッケージにバージョンやパッチを追加する

アプリケーションのバージョンとパッチはアプリケーションパッケージで定義されます。

アプリケーション・パッケージにバージョンやパッチを追加した後、プロバイダーはそのバージョンやパッチに基づいてアプリケーション・オブジェクトを作成することで、変更をローカルでテストすることができます。

詳細については、 バージョンまたはパッチレベルからオブジェクトを作成する をご参照ください。

バージョンやパッチの追加・削除に必要な権限

アプリケーションパッケージのバージョンやパッチを指定するには、そのアプリケーションパッケージのロールに以下のいずれかの権限が付与されている必要があります。

  • OWNERSHIP

  • MANAGE VERSIONS

たとえば、アプリケーションパッケージの MANAGE VERSION 権限を release_mgr ロールに付与するには、次の例に示すように GRANT <権限> コマンドを使用します。

GRANT MANAGE VERSIONS ON APPLICATION PACKAGE hello_snowflake_package
  TO ROLE release_mgr;
Copy

アプリケーションパッケージへのバージョンの追加

SQL を使ってアプリケーション・パッケージにバージョンを追加するには、 ALTER APPLICATION PACKAGE コマンドを実行します。

ALTER APPLICATION PACKAGE MyAppPackage
  ADD VERSION v1
  USING '@dev_stage/v1'
  LABEL = 'MyApp Version 1.0';
Copy

この例では、 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;
Copy

この例では、パッチ番号は 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;
Copy

アプリケーションパッケージのバージョンとパッチの表示

プロバイダーとして、アプリケーションパッケージに対して SHOW VERSIONS コマンドを実行すると、アプリケーションに定義されたバージョンとパッチを表示することができます。

次のコマンドは、 hello_snowflake_package という名前のアプリケーションパッケージに定義されているバージョンとパッチを表示します。

SHOW VERSIONS IN APPLICATION PACKAGE hello_snowflake_package;
Copy

アプリケーションパッケージからバージョンを削除する

アプリケーションパッケージからバージョンを削除するには、削除したいバージョンを指す リリースディレクティブ が現在存在しないことを確認する必要があります。

リリースディレクティブの表示については アプリケーションパッケージのリリースディレクティブの表示 をご参照ください。

アプリケーションパッケージからバージョンを削除するには、次の例に示すように ALTER APPLICATION PACKAGE コマンドの DROP VERSION 句を使用します。

ALTER APPLICATION PACKAGE hello_snowflake_package
  DROP VERSION v1_0;
Copy

このコマンドの実行後も、アプリのインストール済みインスタンスがすべて削除されるまで、バージョンはドロップされません。ドロップコマンドのステータスを確認するには、次の例のように SHOW VERSIONS を使用します。

SHOW VERSIONS IN APPLICATION PACKAGE hello_snowflake_package;
Copy

dropped_on 列には、ドロップが開始されたときのタイムスタンプが一覧表示されます。

注釈

ドロップされたバージョンは、ステータスが DROPPED の間だけ、このコマンドの出力に表示されます。アプリのインストール済みインスタンスがすべて削除されると、削除されたバージョンは表示されなくなります。

あるバージョンが削除されると、コンシューマーはそのバージョンのアプリを新たにインストールすることができなくなります。

アプリケーションがどのようにコンシューマーに公開されるかによって、バージョンがドロップされるまでにかかる時間は異なります。

  • アプリケーションパッケージがコンシューマーに公開されていない場合、そのバージョンは直ちにドロップされます。

  • アプリケーションパッケージが1つのリージョン内でパブリックリストまたはプライベートリストとして公開されている場合、そのバージョンは直ちにドロップされます。

  • アプリケーションパッケージが、アプリケーションパッケージと同じリージョン内で共有されるリストのデータ製品として公開された場合、そのバージョンは数時間以内にドロップされます。

  • アプリケーションパッケージが クロスクラウド自動複製 を使用したリストのデータ製品として公開されている場合、すべてのリージョンでバージョンがドロップされるまでに時間がかかることがあります。