いつもやり方を忘れてそのたびにググっているので自分用のメモです。
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
コメントを残す