地方でリモートワークからの起業

外資系製薬会社、公務員在職中にスパルタキャンプ参加、リモートワークエンジニアから起業しました

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