Getting started of mysqldump

DBマイグレーション試そうと思ってmysqldump使ってリストアすることにした

dumpする時

mysqldump -u account_name -p -h host_name db_name > filename.sql

dumpしたデータを使うとき

mysql -u account_name -p -h host_name db_name < filename.sql

docker-composeで立ち上げたmysqlコンテナでリストアしたい

  • volumes指定で、dumpデータにアクセスできるフォルダを用意しておく
volumes:
  - ./db-data:/tmp/db-data
  • コンテナに入る

    • docker exec -it CONTAINER_ID sh
  • mysqlコマンドでリストアする

メモ

  • DBマイグレーション後にテーブルが増える変更を試していたので、リストア後もそのテーブルが残ってて??ってなった
  • qiitaに dumpファイルの中身はただのテキスト化されたsql とあったので覗いてみたら解決した
  • dump時にあったテーブルたちに対して「テーブルがあればDROP&CREATE」しているだけだったので、dump後に増えたテーブルはdump関係なかった

    • migrationのundoで対応するしかなさそう
    • 今回は手動で空のDB作り直してからリストアした

参考リンク