MySQL で特定のテーブルのみをバックアップ

スポンサーリンク

Railsでマイグレーションした後、Rakeタスクでプログラムを組んで、DBに不変なマスターデータやサンプルデータ等を流し込んだ場合、db:migrate:reset した後に、同じRakeタスクからデータを流し込むと時間がかかりすぎる場合がある。そういうケースでは、2回目移行は、1回目のRakeタスクで保存したDBデータから取得できる sql ダンプを使ってデータを流し込んだほうが早いだろうと考えました。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

mysqldump コマンドでテーブルごとにバックアップ

以下の書式で mysqldump コマンドを利用します。

デーブルは1つでも複数でも指定可能。Rails の場合、-t オプションを付けたほうが良いと思います。これは、「テーブル作成情報(CREATE TABLE ステートメント)を書き込まない」オプション。Rails の場合、テーブル作成情報はマイグレーションファイルに含まれるので、sql ダンプには不要です。

blog_development データベースの posts テーブルをバックップする例。

sqlダンプファイルからDBへデータ復元

復元には、mysql コマンドを使います。

先程の例での復元。

以上です。

スポンサーリンク
現場で使えるMySQLは長くお世話になっていて、MySQL触る人には必須の本。
 
スポンサーリンク

Leave Your Message!