はじめに
RailsアプリケーションでDBにMySQLを使用して開発しており、DBのデータを一時的に残して作業をしたいことがありました。
本記事では、バックアップと復元方法の手順を記述しています。
前提
Ruby: 2.7.3
Rails: 6.1.5
MySQL: 8.27
Docker: 20.10.5
開発環境構成図
docker-composeコマンドを実行してRailsコンテナとDBコンテナを立ち上げています。
今回はDBコンテナに接続しバックアップ作業を行います。
作業内容
Dockerコンテナにログイン
バックアップ取得、復元作業はコンテナ内で行います。
docker exec -it DBコンテナ名 bash
バックアップ取得
今回は特定のDBのみバックアップを取得しています。
バックアップコマンドには複数オプションが存在するので適宜、必要なオプションを追加してください。
https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html
mysqldump --single-transaction -u DBユーザ名 -p -h DBコンテナ名 DB名 > 出力先ファイル名.dump
復元
mysql -u ユーザー名 -p -h DBコンテナ名 データベース名 < 出力先ファイル名.dump
dumpファイルの削除
サービスの起動を確認し問題がなければ、作成されたdumpファイルの削除して完了です。
参考URL