App Maker + Google Cloud SQL の組み合わせで使ってみる(モデル作成)

[App Maker + Google Cloud SQL の組み合わせで使ってみる(事前設定)](https://qiita.com/kamina/items/f9b2591bb806476dc003)
の続きになります。

前回で、AppMakerのモデル作成でGoogle Cloud SQLが選択可能となりましたので、早速モデルを作成してみたいと思います。

#Cloud SQLモデルの作成
モデル名をつけてCreateします。
![Create Cloud SQL Model.png](https://qiita-image-store.s3.amazonaws.com/0/272546/d0622431-b757-2468-08f4-179431fe6c39.png)

すると、Idというフィールドを持つモデルが作成されます。
ちなみにIdは下記定義となっています。

- 数値型
- PRIMARY KEY
- Auto Increment

![TestModel.png](https://qiita-image-store.s3.amazonaws.com/0/272546/f656ec63-f4fb-f836-d708-50e954e6e705.png)

試しに文字列型を追加してみます。
ADD FIELDからStringを選択します。
![文字列型追加.png](https://qiita-image-store.s3.amazonaws.com/0/272546/01fbf477-3b06-b8fa-9545-35c4354ee6f9.png)

そうして作成したモデルはこちらになります。
![作成したモデル.png](https://qiita-image-store.s3.amazonaws.com/0/272546/2269c8a6-1760-a063-cae8-aa8918792399.png)

これでモデルの作成は完了になります。
Google Cloud SQL側は一切何もしていませんが、良いのか？と。良いんです(笑
では、次にGoogle Cloud SQL側を見てみましょう。

#Google Cloud SQL側を確認する(Cloud Shell接続)
確認する方法はいろいろありますが、ここはGCPに用意されているCloud Shellを使用してみます。

GCPにアクセスしてGoogle Cloud SQLのインスタンスの詳細を開きます。
そうすると下記パネルがあるので、「Cloud Shellを使用して接続」を選択します。
![Cloud Shell.png](https://qiita-image-store.s3.amazonaws.com/0/272546/0cb0f3ec-1cca-f530-254b-3f05d7c8d652.png)

すると下部にコンソールが表示されますので、

1. 既に接続の為のコマンドが入力されている状態なので、そのままEnter。
2. rootのパスワードを聞かれるので、入力してEnter。
3. 暫し待つとMySQLに接続されます。

![コンソール.png](https://qiita-image-store.s3.amazonaws.com/0/272546/2684873a-fad7-feab-4781-f124d37b2a5a.png)

無事に接続できたら、DBの中身を確認してみます。
まずはDB一覧の確認から。

```:DB一覧
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| 2wBaAKntZDrVH6sm   |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.16 sec)
```

ランダム文字列(上記だと2wBaAKntZDrVH6sm)のDBが増えていると思います。
なので、そのDBのテーブル一覧を確認すると、

```:テーブル一覧
MySQL [(none)]> show tables from 2wBaAKntZDrVH6sm;
+----------------------------+
| Tables_in_2wBaAKntZDrVH6sm |
+----------------------------+
| TestModel                  |
+----------------------------+
1 row in set (0.16 sec)
```

作成したモデル名のテーブルが作成されているのが分かります。
ここまでくると予想がつくと思いますが、カラム定義を確認すると、

```:カラム定義
MySQL [(none)]> show columns from 2wBaAKntZDrVH6sm.TestModel;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| Id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| Text  | varchar(255) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.15 sec)
```

AppMakerで作成したモデルの通りの定義になっています。
この通り、AppMakerがDB作成からテーブル作成まで自動でやってくれるのです。

#データベースの名前を変えたい

自動でやってくれるのはありがたいのですが、DBの名前がランダム文字列というのはちょっと、、と思われる方もいるかと思います。
ですので、DBの名前を自分で決める方法を紹介します。

まずは、Google Cloud SQL側に新しくDB(ここではtest_dbとします)と、それにアクセス可能なユーザーを作成しておいてください。GCPから簡単に作成可能です。

AppMaker(アプリ)の設定を開いてDATABASEタブを選択し、ここに「SWITCH TO A CUSTOM CLOUD SQL DATABASE」というボタンがあるので、これをクリックします。
※あと、DB名に使われていたランダム文字列ですが、Database Keyとしてココに記載されています。
![DB指定.png](https://qiita-image-store.s3.amazonaws.com/0/272546/777a4dd7-a97e-1944-bd44-45ce60771fa4.png)

すると、Cloud SQLの接続先を聞かれるので、「インスタンスの接続名/DB名」の形で入力します。
![DB接続先.png](https://qiita-image-store.s3.amazonaws.com/0/272546/4abb5db0-1588-2d3a-7991-18e5ca571b5f.png)

DBにアクセスする為のユーザー名とパスワードを聞かれるので、アクセス可能なものを入力します。
その後、モデルが既に作成済みの場合などはその整合性を合わせる為の質問が続きますので、回答してください。（モデルに合わせてテーブルを作成するなど）

変更が終わると下記のように接続先が指定したものに変わります。
![DB変更後.png](https://qiita-image-store.s3.amazonaws.com/0/272546/185a5daf-aa04-38f6-ac44-6a857e0a2cf5.png)

NEXT.
次回は実際にデータを画面に表示してみます。
[App Maker + Google Cloud SQL の組み合わせで使ってみる(テーブルで画面表示)](https://qiita.com/kamina/items/8f6da0dc119e20381704)