対象となる方々
- あるバッチファイルを実行したいけど本番/STG環境で検証なんてこわくてできるわけがない。
- でもローカル環境に入っているDBのデータ量がしょぼくて臨場感がない。
- 自分のローカル環境をできる限り本番環境に近づけたい。
前提
- Rails 5.0.0.1
- MySQL 5.7
本番環境のDBをmysqldumpでダンプする
まずは本番環境のDBのデータをダンプ(データ等をまるごと記録すること)する必要がある。
ターミナルで以下のコマンドを叩く。作業ディレクトリにダンプファイルを置いたままにすると、git管理下に入ってしまうので、それを忘れたまんまコミットしようとすると恐ろしいことになる…なんてことはしないですよね…m(_ _)m
$ mysqldump -u user_name -h host_name -p --database database_name > file_name
$ Enter password: ここにパスワードを記入する
・・・・・・・・ダンプ実行が開始される・・・・・・・・・
ダンプが終わったら、そのファイルをローカル環境のDBにインポートする。
$ mysql -u user_name -p database_name < file_name
database_nameにはインポート先のデータベース名を指定する
scpコマンドを使う場合
linuxコマンドの一つ。ssh接続を介して、ファイルのアップロード/ダウンロードをすることができたりする。
https://webkaru.net/linux/scp-command/
これを使う場合は、本番サーバーにあらかじめダンプファイルが置いてあるという条件が必要。
ssh接続して本番サーバーに入り同じようにmysqldump
でダンプファイルを作成。
ただ、本番環境にあっても意味のないファイルのため、/tmp
以下に作成するようにした方が良い。
ターミナル上のどこでも良いので、以下のコマンドを実行。ダウンロードが開始すれば、右端にファイル転送時間と容量を表示してくれる。
$ scp username@ipaddress:[ダウンロード元のパス] [ダウンロード先のパス]
hoge.sql 100% 540MB 337.5KB/s 27:18
username
って何?と一瞬思ってしまったんですが、AWSとか使ってる場合はec2-user
とかになりますね。
ipaddress
は本番サーバーに割り当てられているIPアドレス(ホストネーム)をかけばOKのはずです。