CloudKit Dashboardによるデータベース管理

データベース管理作業の多くはCloudKit Dashboardで実行できます。たとえばスキーマやレコードの変更が可能です。コンテナのデータベースは、開発環境、実稼働環境の両方に存在します。どちらの環境かによって、実行できる操作は異なります。

CloudKit Dashboardに接続してサインインした後、項目をクリックして、各種の機能に切り替えるようになっています。

../Art/Dashboard1.shot/Resources/shot_2x.png../Art/Dashboard1.shot/Resources/shot_2x.png

開発環境と実稼働環境について

開発環境では、スキーマを生成し、レコードを追加してテストを実施します。一方、実稼働環境には、ストアを通して販売されたアプリケーションがアクセスします。開発中のアプリケーションはどちらの環境にもアクセス可能です。しかし、Storeを通して販売されたアプリケーションは、実稼働環境にしかアクセスできません。

開発環境の場合、CloudKitは自動的に、データベースに保存されたレコードにもとづきスキーマを生成します。わざわざ手間をかけることなく、随時スキーマを改善していくことができます。また、CloudKit Dashboard上でレコードを変更または追加することも可能です。

スキーマを配備する初回は、スキーマをそのまま実稼働環境にコピーします(レコードはコピー対象外)。2回目以降は既存のスキーマにマージします。このときに衝突が発生しないよう、実稼働環境に配備済みのスキーマについて、開発環境の側でフィールドやレコード型を削除することはできないようになっています。

実稼働環境でスキーマを変更することはできません。一方、公開データベースにレコードを追加し、既存のレコードを変更、削除することは可能です。

../Art/developer_workflow_2x.png../Art/developer_workflow_2x.png

Xcodeを介してCloudKitアプリケーションを起動すれば、自動的に開発環境で実行することになります。アプリケーションをテスト用にXcodeからエクスポートする際には、どちらの環境で実行するか指定できます。Storeに登録するときには、実稼働環境で実行する設定になります。

コンテナを選択する

CloudKit Dashboardではあらゆる機能を、あらかじめ選択したコンテナに適用するようになっています。切り替えは左上隅のポップアップメニューでおこないます。このメニューには、所属する全Apple Developer Programチームにわたるコンテナが、すべて列挙されています。開発中のアプリケーションが用いるコンテナを選択した上で、以下に説明する作業を実施するようにしてください。

開発環境をリセットする

「実行時(JIT)」スキーマの仕組みを有効にした状態で、レコードをデータベースに追加している場合(「データベーススキーマの作成(レコード保存による方法)」を参照)、アプリケーションを実行する都度、開発環境をリセットできます。開発環境を配備したことがなければ、リセットすると、レコードやレコード型がすべて消えてしまいます。そうでなければ、いったんレコードをすべて削除した後、スキーマを実稼働環境と同じ状態に復元するようになっています。

開発環境をリセットするには

  1. CloudKit Dashboardで、「Development」環境の「Reset…」をクリックします。

  2. するとダイアログが現れます。警告をよく読んだ上でチェックボックスをオンにし、「Reset」を押してください。

    ../Art/Reset2017.shot/Resources/shot_2x.png../Art/Reset2017.shot/Resources/shot_2x.png

レコード型を生成、削除する

開発環境では、CloudKit Dashboardを使ってレコード型を生成、変更、削除できます。

レコード型を生成するには

  1. CloudKit Dashboardで、「Development」環境の「Data」をクリックします。

  2. タブバーの「Record Types」を選択します。

  3. 「Create New Type」ボタンをクリックします。

  4. 「New Record Type」フィールドに名前を入力します。

    ../Art/CreateRecord1.shot/Resources/shot_2x.png../Art/CreateRecord1.shot/Resources/shot_2x.png
  5. フィールドを追加する場合は、「Add Field」を押し、フィールド名を入力し、ポップアップメニューからフィールド型を選択します。

  6. 削除したいフィールドがあれば、その行の「Delete」ボタン(「×」の表示)を押してください。

    ただし、配備済みのフィールドであれば、ボタンは押せません。

  7. 「Save Record Type」をクリックします。

レコード型を削除できるのは、まだ実稼働環境に配備していない、開発環境の側で追加したものに限ります。削除すると、当該レコード型のレコードも、すべてデータベースから消えてしまいます。

レコード型を削除するには

  1. CloudKit Dashboardで、「Development」環境の「Data」をクリックします。

  2. タブバーの「Record Types」を選択します。

  3. 削除するレコード型を選択してください。

  4. 「Delete Record Type」ボタンをクリックします。

    レコード型が配備済みであれば、削除のオプションは押せません。

  5. 表示される確認ダイアログで「削除」をクリックします。

レコードを追加、変更、削除する

開発環境、実稼働環境とも、CloudKit Dashboardを使って、公開データベースにレコードを追加し、あるいは既存のレコードを変更、削除できます。

レコードを生成するには

  1. CloudKit Dashboardで、「Development」環境または「Production」環境の「Data」をクリックします。

  2. タブバーからレコードを選択します。

  3. 「Create New Record…」をクリックして、新しいレコードの生成を開始します。

    CloudKit Dashboardは自動的に、ランダムなUUIDをレコード名として割り当てます。

  4. テキストフィールドに値を入力してください。

  5. Date/Time型の場合は、暦日および時刻の値を、それぞれのフィールドに入力します。

    ../Art/CreateRecord3.shot/Resources/shot_2x.png../Art/CreateRecord3.shot/Resources/shot_2x.png
  6. Assetの値については、ファイルをボックスまでドラッグするか、「Choose File」を押し、ファイルをアップロードしてください。

  7. Location型であれば緯度と経度をそれぞれ入力します。

    緯度は-90〜90°、経度は-180〜180°の範囲です。

  8. 「保存(Save)」をクリックします。

レコードを表示、変更、削除するには

  1. CloudKit Dashboardで、「Development」環境または「Production」環境の「Data」をクリックします。

  2. タブバーからレコードを選択します。

  3. 表示、変更、削除するレコードを検索します。

  4. 表示、編集、削除したいレコードを選択してください。

    詳細領域にレコードフィールドが表示されます。

  5. レコードを編集する場合は、新しい値をテキストフィールドに入力し、「Save」を押します。

  6. レコードを削除するには、「Delete」ボタンをクリックし、表示されるダイアログで「Delete」をクリックします。

レコードを検索する

開発環境、実稼働環境とも、文字列フィールドが属するレコードは検索が可能です。

レコードを検索するには

  1. CloudKit Dashboardで、「Development」環境または「Production」環境の「Data」をクリックします。

  2. タブバーからレコードを選択します。

  3. 検索するレコード型を選択します。

  4. フィルタまたはソート条件をクエリに追加します。

  5. 「Query Records」ボタンをクリックします。

まとめ

この章では、CloudKit Dashboardによるデータベース管理を紹介し、次の事項を解説しました。