CloudKit Dashboardによるデータベース管理
データベース管理作業の多くはCloudKit Dashboardで実行できます。たとえばスキーマやレコードの変更が可能です。コンテナのデータベースは、開発環境、実稼働環境の両方に存在します。どちらの環境かによって、実行できる操作は異なります。
CloudKit Dashboardに接続してサインインした後、項目をクリックして、各種の機能に切り替えるようになっています。


開発環境と実稼働環境について
開発環境では、スキーマを生成し、レコードを追加してテストを実施します。一方、実稼働環境には、ストアを通して販売されたアプリケーションがアクセスします。開発中のアプリケーションはどちらの環境にもアクセス可能です。しかし、Storeを通して販売されたアプリケーションは、実稼働環境にしかアクセスできません。
開発環境の場合、CloudKitは自動的に、データベースに保存されたレコードにもとづきスキーマを生成します。わざわざ手間をかけることなく、随時スキーマを改善していくことができます。また、CloudKit Dashboard上でレコードを変更または追加することも可能です。
スキーマを配備する初回は、スキーマをそのまま実稼働環境にコピーします(レコードはコピー対象外)。2回目以降は既存のスキーマにマージします。このときに衝突が発生しないよう、実稼働環境に配備済みのスキーマについて、開発環境の側でフィールドやレコード型を削除することはできないようになっています。
実稼働環境でスキーマを変更することはできません。一方、公開データベースにレコードを追加し、既存のレコードを変更、削除することは可能です。


Xcodeを介してCloudKitアプリケーションを起動すれば、自動的に開発環境で実行することになります。アプリケーションをテスト用にXcodeからエクスポートする際には、どちらの環境で実行するか指定できます。Storeに登録するときには、実稼働環境で実行する設定になります。
コンテナを選択する
CloudKit Dashboardではあらゆる機能を、あらかじめ選択したコンテナに適用するようになっています。切り替えは左上隅のポップアップメニューでおこないます。このメニューには、所属する全Apple Developer Programチームにわたるコンテナが、すべて列挙されています。開発中のアプリケーションが用いるコンテナを選択した上で、以下に説明する作業を実施するようにしてください。
開発環境をリセットする
「実行時(JIT)」スキーマの仕組みを有効にした状態で、レコードをデータベースに追加している場合(「データベーススキーマの作成(レコード保存による方法)」を参照)、アプリケーションを実行する都度、開発環境をリセットできます。開発環境を配備したことがなければ、リセットすると、レコードやレコード型がすべて消えてしまいます。そうでなければ、いったんレコードをすべて削除した後、スキーマを実稼働環境と同じ状態に復元するようになっています。
開発環境をリセットするには
CloudKit Dashboardで、「Development」環境の「Reset…」をクリックします。
するとダイアログが現れます。警告をよく読んだ上でチェックボックスをオンにし、「Reset」を押してください。
レコード型を生成、削除する
開発環境では、CloudKit Dashboardを使ってレコード型を生成、変更、削除できます。
レコード型を生成するには
CloudKit Dashboardで、「Development」環境の「Data」をクリックします。
タブバーの「Record Types」を選択します。
「Create New Type」ボタンをクリックします。
「New Record Type」フィールドに名前を入力します。
フィールドを追加する場合は、「Add Field」を押し、フィールド名を入力し、ポップアップメニューからフィールド型を選択します。
削除したいフィールドがあれば、その行の「Delete」ボタン(「×」の表示)を押してください。
ただし、配備済みのフィールドであれば、ボタンは押せません。
「Save Record Type」をクリックします。
レコード型を削除できるのは、まだ実稼働環境に配備していない、開発環境の側で追加したものに限ります。削除すると、当該レコード型のレコードも、すべてデータベースから消えてしまいます。
レコード型を削除するには
CloudKit Dashboardで、「Development」環境の「Data」をクリックします。
タブバーの「Record Types」を選択します。
削除するレコード型を選択してください。
「Delete Record Type」ボタンをクリックします。
レコード型が配備済みであれば、削除のオプションは押せません。
表示される確認ダイアログで「削除」をクリックします。
レコードを追加、変更、削除する
開発環境、実稼働環境とも、CloudKit Dashboardを使って、公開データベースにレコードを追加し、あるいは既存のレコードを変更、削除できます。
レコードを生成するには
CloudKit Dashboardで、「Development」環境または「Production」環境の「Data」をクリックします。
タブバーからレコードを選択します。
「Create New Record…」をクリックして、新しいレコードの生成を開始します。
CloudKit Dashboardは自動的に、ランダムなUUIDをレコード名として割り当てます。
テキストフィールドに値を入力してください。
Date/Time型の場合は、暦日および時刻の値を、それぞれのフィールドに入力します。
Assetの値については、ファイルをボックスまでドラッグするか、「Choose File」を押し、ファイルをアップロードしてください。
Location型であれば緯度と経度をそれぞれ入力します。
緯度は-90〜90°、経度は-180〜180°の範囲です。
「保存(Save)」をクリックします。
レコードを表示、変更、削除するには
CloudKit Dashboardで、「Development」環境または「Production」環境の「Data」をクリックします。
タブバーからレコードを選択します。
表示、変更、削除するレコードを検索します。
表示、編集、削除したいレコードを選択してください。
詳細領域にレコードフィールドが表示されます。
レコードを編集する場合は、新しい値をテキストフィールドに入力し、「Save」を押します。
レコードを削除するには、「Delete」ボタンをクリックし、表示されるダイアログで「Delete」をクリックします。
レコードを検索する
開発環境、実稼働環境とも、文字列フィールドが属するレコードは検索が可能です。
レコードを検索するには
CloudKit Dashboardで、「Development」環境または「Production」環境の「Data」をクリックします。
タブバーからレコードを選択します。
検索するレコード型を選択します。
フィルタまたはソート条件をクエリに追加します。
「Query Records」ボタンをクリックします。
まとめ
この章では、CloudKit Dashboardによるデータベース管理を紹介し、次の事項を解説しました。
開発環境を既知の状態にリセットする方法
レコード型を生成、削除する手順
レコードを生成、編集する手順