GDrive などのクラウド ストレージ プロバイダに保存されているデータを使用する既存のアプリを SQL データベースに移動する場合、アプリをアプリエディタにコピーして操作できます。この機能は現在、データベースのタイプとして、SQL サーバー、MySQL、MariaDB、PostgreSQL でサポートされています。
アプリエディタで、[Manage] > [Author] に移動し、[Copy App] をクリックします。ダイアログ ボックスで、目的のデータベースをクローン作成済みアプリを作成する宛先として選定します。データベースは、アカウントの既存のデータソースである必要があるので注意してください。また、設定 [Make a copy of the data for the new app] と [Make a copy of the file data (eg: images) for the new app] が有効になっていることを確認してください。
データベースを選定したら、[Copy app] をクリックすると、AppSheet は自動的にアプリ内のすべてのテーブルをデータベースにコピーします。次の点に注意してください。
- AppSheet はテーブル名を自動生成します。ただし、これらの名前は、データベースにすでに存在するテーブル名との重複を避ける必要があるため、長くなる傾向があります。
- AppSheet にはデータベースの設計に関する情報がないため、既存のテーブルを使用して新しいテーブルをリンクする外部キーを作成することはできません。また、AppSheet は AppSheet テーブル間の参照に関する外部キー制約を作成しません。
- SQL データタイプと AppSheet データタイプ間の 1 対 1 のマッピングはありません。したがって、AppSheet が SQL テーブル内の列に選択する SQL データタイプは、AppSheet 内の対応するデータタイプに基づく「経験に基づく推測」にすぎません。たとえば、AppSheet の
Decimal列は、SQL のDecimalまたはFloat列にすることができますが、AppSheet はデフォルトでDecimalSQL 列の型を選択します。 - AppSheet の画像やファイルの列は、SQL の blob 列やバイナリ列には変換されません。これは、画像やファイルは、Google ドライブなどのクラウド ストレージ プロバイダに引き続き保存されるためです。SQL の列は、ファイルパスのみを保存します。
- AppSheet は、コピーされたテーブルのトリガーやストアド プロシージャを生成しません。
- 元のスプレッドシート内の式やスクリプトは、データベースにはコピーされません。
ある意味、AppSheet で生成された SQL テーブルは非常に基本的なテーブルであり、従来のデータベースの利点を十分には活用していません。したがって、AppSheet を使用して既存のアプリをデータベースにコピーする主な目的は、スプレッドシートからデータベースへのデータの転送を迅速化することにあります。アプリ作成者は、アプリがコピーされた後に、データベースの設計要件に最も適合するように生成された SQL テーブルを修正することを強くおすすめします。