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

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

スポンサーリンク

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

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

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

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

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

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

先程の例での復元。

以上です。

スポンサーリンク
現場で使えるMySQLは長くお世話になっていて、MySQL触る人には必須の本。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!