はじめに
GCPにてCloud SQLのインスタンスを作成したものの更新方法がわからないと思います。
IPを登録し、直接DBにアクセスしSQLを流し込めばいけますがマイグレーションを実行したい場合は、Cloud SQL Proxy
を使用します。
参考記事
公式 Cloud SQL Proxy を使用して MySQL クライアントに接続する
※こちらに最初の手順は記載されています。
事前準備
Cloud SQL API を有効にする
Cloud SQL Administration API を有効にして下さい。
Cloud SQL Administration APIを有効にする
作業手順
1. プロキシをインストールする
cloud_sql_proxy
をインストールするのですがダウンロード先はホームディレクトリがオススメなのでホームディレクトリに移動してからダウンロードしましょう。
1-1.ダウンロード
$ curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
1-2.実行権限の付与
$ chmod +x cloud_sql_proxy
2.TCPソケットを使用して接続
TCPソケットとUNIXソケットがありますがTCPソケットがオススメです。
<INSTANCE_CONNECTION_NAME>
は以下の構成となります。
プロジェクトID:CloudSQLインスタンスのリージョン:CloudSQLインスタンス名
$ ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
3.DBへ接続
接続が完了したらターミナルを別タブで開きます。
Laravelのドキュメントルートに移動します。
色々と方法がありますが、一旦ここは.env
の中身を一時的に書き換えます。
DB_CONNECTION
DB_HOST
はそのままで大丈夫です。
DB_SOCKET
の指定は不要です。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=CloudSQLのデータベース名
DB_USERNAME=CloudSQLのユーザー名
DB_PASSWORD=CloudSQLのパスワード
4.マイグレーションの実行
あとは実行するだけで完了です。
作業完了したら、プロキシを切断しましょう。
$ php artisan migrate