0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Rails】Mysql2::Error: Table '' already existsをDBをリセットせずに対処する

Posted at

はじめに

Mysql2::Error: Table '' already existsというエラーが発生した際、調べたらそれなりに対処法は出てきたのですが、db:migrate:resetすれば解決と言っているものが多かったです。
しかしDBをリセットしたくない状況の時に困りそうだったので、リセットせずに解決できる方法を調べました。

DBから直接テーブルを削除する

エラーの対象となっているテーブルがダブっていることが原因なので、DBから削除すれば解決できます。
まずDBにログインします。パスワードを設定していれば打ち込んでログインしてください。

ターミナル
$ bin/rails db

mysql> 

次にテーブルを参照します。

ターミナル
mysql> SHOW TABLE;

+-----------------------------+
| Tables_in_myapp_development |
+-----------------------------+
| ar_internal_metadata        |
| relationships               |
| schema_migrations           |
| tasks                       |
| users                       |
+-----------------------------+
5 rows in set (0.00 sec)

私の場合はrelationshipsテーブルでエラーが発生したので削除します。

ターミナル
mysql> drop table relationships;

Query OK, 0 rows affected (0.03 sec)

そしてもう一度マイグレートすれば上手くいきました。

ターミナル
$ bin/rails db:migrate

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?