dockerでmysqlのダンプファイルをリストアする

f:id:ihatov08:20170208215245j:plain

いつもやり方を忘れてそのたびにググっているので自分用のメモです。
Railsでdocker-composeでdbにdumpをリストアする方法です。

前提

  • Rails.root/tmp以下にdevelopment.dump.sqlがあること
  • docker-compose.ymlのservicesのdbが定義されていること
  • rails db:createしていること

コンテナにdumpファイルをコピーする

docker-compose up

してdbコンテナを起動します。

docker ps | grep hoge_db_1 | awk -F' ' '{print $1}'でdbコンテナのコンテナIDを取得できます。

hoge_db_1の部分は各自読み替えてください。

docker psでコンテナ一覧を表示、dbコンテナのIDをコピペでもできます。

tmp/development.dump.sqlをコンテナの/tmpにコピーします。

docker cp tmp/development.dump.sql `docker ps | grep hoge_db_1 | awk -F' ' '{print $1}'`:/tmp

dbコンテナのbashを起動する

docker exec -it `docker ps | grep hoge_db_1 | awk -F' ' '{print $1}'` /bin/bash

restoreする

dbコンテナのbashが起動したらリストアします。

mysql -u root -ppassword -D hrchecker_development < tmp/development.dump.sql

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です