Laravel+mySQLでマイグレーションのやり直しのデータリストア

Laravelで開発をしていて、途中でDBの項目が増えたりしてマイグレーションのやり直しが発生することがちょくちょくある。
直接alterしてもいいけど、ちゃんとマイグレーションファイルも動くか確認したい。
けど、今あるデータは削除したくない、って場合。

パッケージでよしなにバックアップ取ったりしてくれるものはあるようだけど、postgreSQLのものが多かったり、そのためにパッケージインストールするのも、、と思ってしまう。

それならコマンドで叩いたほうが早い、というわけで、備忘録。

エクスポート

テーブル情報を抜いたデータ情報のみをエクスポート。
(作業はvagrant内に入った状態で)

1
mysqldump -uroot -proot -t DATABASE_NAME > all.dump

エクスポートされたデータから、migrationsテーブルのインサート情報の部分だけは削除しておくこと。
(laravelのmigrateで自動作成されるので、インポート時にID重複のエラーが出る)

1
2
3
4
5
--
-- Dumping data for table `migrations`
--

(このセクションを削除)

再マイグレーション

Laravelに用意されている。

1
$ php artisan migrate:fresh

インポート

あとはインポートするだけ。

1
$ mysql -uroot -proot DATABASE_NAME < all.dump

完了。

参考

   このエントリーをはてなブックマークに追加