LoginSignup
1
0

More than 3 years have passed since last update.

Cloud SQLのインスタンスに接続してリモート上のDB環境をローカルに再現する

Last updated at Posted at 2020-04-25

概要

Cloud SQLのインスタンスに接続してリモート上のDB環境をローカルに再現したい。

[前提]
ローカル環境はdockerでpostgresを使用。

準備編

Cloud SQLプロキシをローカルにinstall。
https://cloud.google.com/sql/docs/postgres/quickstart-proxy-test?hl=ja

ローカルにinstallすることで、簡単にリモート上のDBに接続できるようになる。

cloud_sql_proxy -instances=インスタンス名=tcp:5432 ;

上記で、ローカルからインスタンスに接続。

psql -h localhost -p 5432 -U postgres -d postgres

postgresで接続。

ちなみに、オプションの意味も載せとく。(忘れがちなので)

-d: データベース名(未指定だと、ログインユーザー名のデータベースに接続する)

-U: ユーザ名(未指定だと、ログインユーザー名になる)

-h: ホスト名(未指定だと、localhostになる)

\l

でデータベース一覧を確認し、dumpしたいDBが存在するか確認。

※場合によってはpasswordを求められるかも

dump編

pg_dump -h localhost -p 5432 -U ユーザー名 DB > dump.sql

dumpファイルを作成する。(今回だとdump.sqlというファイル名)


docker cp ./dump.sql コンテナのDB名:dump.sql

ローカルではコンテナを使っているので、

dumpしたファイルをローカルのDBコンテナにコピーする。


docker exec -it コンテナのDB名 sh

コピーしたDBコンテナに入る

一応lsでちゃんとdump.sqlが入っているか確認もするといいかも。


psql -U postgres -d DB名 < dump.sql

dump.sqlの存在が確認できたら、上記コマンドdumpファイルをローカルに再現。

参考資料

https://cloud.google.com/sql/docs/postgres/quickstart-proxy-test?hl=ja
https://qiita.com/rice_american/items/ceae28dad13c3977e3a8

1
0
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
1
0