9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ローカルからCloud SQLのDBに接続し、Laravelのマイグレーションを実行する

Last updated at Posted at 2018-12-17

はじめに

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
9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?