DumpファイルのデータをDockerのMysqlへ入れる

やっとDumpファイルのデータをDockerのMysqlへ入れることができたので やり方を書いておこうと思います!

 

方法

ダンプファイルを用意

ダンプファイルを用意し、アプリ直下へ置きます。

ダンプファイルの schema情報と現在のDBが違う状態となっている場合、ダンプファイルからschema情報部分を削除します。

schemaの情報をもとにDBとデータが作成されてしまうので、削除しないとActiveRecord::PendingMigrationErrorが発生してしまいます。

この場合のPendingMigrationErrorはrake db:migrateしたところで治ってくれないのでschema情報削除が必須そうです。

 

 

dockerのbashへ接続

以下のコマンドでdockerのbashへ接続します。

$ docker-compose exec コンテナ名 /bin/bash

 

 データベースを確認

dockerのmysqlへ接続しデータベース一覧を確認します。

bash-4.2# mysql -hホスト名 -uユーザー名 -pパスワード mysql> show databases; 

 

 データをMysqlへ入れる

ホスト、ユーザー、パスワード、DBを指定しダンプファイルのデータをMysqlへ入れます。

bash-4.2# mysql -hホスト名 -uユーザー名 -pパスワード -D データベース名 < Dump.sql

 

 

これでDumpファイルのデータが入っているはずです!!
 

 

感想その他

以前似たようなやり方を試した事があったのですが上手くいっておりませんでした。

今思い返すと、ホストの指定が出来ていなかった気がします。

各コマンドでどんなオプションを指定できるのか知っておく、もしくは予想して調べられるようにしたいとおもいます。

周辺知識が薄すぎると原因の予想をつけることも中々できないので、DBやファイル操作などの基本的な部分はしっかり押さえておきたいと思います。