既存のデータベースにRailsアプリケーションを導入すると、もともとmigrationがないからテスト用のschema作れないとかそういうことがあるので、そこらへんに対するアプローチ。
環境
$ mysql --version mysql Ver 14.14 Distrib 5.7.24, for osx10.14 (x86_64) using EditLine wrapper
やり方
--no-data
または省略形の -d
を使う。
実例
$ mysqldump -u root sample_app_development --no-data > no_data_dump.sql
試しにオプションをつけないものとdiffをとる
$ mysqldump -u root sample_app_development> dump.sql
$ diff dump.sql no_data_dump.sql # (中略) 109,118d78 < < -- < -- Dumping data for table `users` < -- < < LOCK TABLES `users` WRITE; < /*!40000 ALTER TABLE `users` DISABLE KEYS */; < INSERT INTO `users` VALUES (1,NULL,'2018-12-25 15:54:06','2018-12-25 15:54:06'),(2,NULL,'2018-12-25 16:58:08','2018-12-25 16:58:08'),(3,NULL,'2018-12-25 16:58:57','2018-12-25 16:58:57'),(4,NULL,'2018-12-25 17:02:05','2018-12-25 17:02:05'),(5,NULL,'2018-12-25 17:02:06','2018-12-25 17:02:06'),(6,NULL,'2018-12-25 17:02:11','2018-12-25 17:02:11'),(7,'Taro','2018-12-25 17:12:10','2018-12-25 17:12:10'),(8,'Taro','2018-12-25 17:12:42','2018-12-25 17:12:42'); < /*!40000 ALTER TABLE `users` ENABLE KEYS */; < UNLOCK TABLES; 129c89 < -- Dump completed on 2019-01-06 23:08:36 --- > -- Dump completed on 2019-01-06 23:08:28
INSERT分が no-data
のほうにはないことがわかる