マイグレーションをしようとした時に下のようなエラーが表示された。
$ rake db:migrate
== 20180214062508 CreateProducts: migrating ===================================
-- create_table(:products)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Table 'products' already exists: CREATE TABLE `products` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(255), `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL) ENGINE=InnoDB
〜省略〜
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
このエラーの意味は、もうすでに同じtableがあるんですよと言った感じのエラー。 この状況になったら単純にtableを削除してあげたら問題ない。
ターミナルで以下のように入力する。
$ rails db
その後、mysql>
が表示されるので、そこでSHOW TABLES;
と入力する。
mysql> SHOW TABLES;
+------------------------------+
| Tables_in_sample_development |
+------------------------------+
| ar_internal_metadata |
| products |
| schema_migrations |
+------------------------------+
3 rows in set (0.00 sec)
今回は、products
のtableを削除したいので、以下のように入力する。
mysql>drop table products;
Query OK, 0 rows affected (0.01 sec)
ちゃんと削除できたのか確認します。
mysql> SHOW TABLES;
+------------------------------+
| Tables_in_sample_development |
+------------------------------+
| ar_internal_metadata |
| schema_migrations |
+------------------------------+
2 rows in set (0.00 sec)
ちゃんとできていることを確認できたので、exit
で抜けます。
mysql>exit
あとは、
$ rake db:migrate
以上、終わり。